把引用项/依赖包打包到运行的jar文件中


mvn package命令只能用于没有引用项/依赖包的打包。

如果有引用项/依赖包并打包到运行jar文件中,需要使用额外的插件。

有2个可选插件:

maven-assembly-plugin
maven-shade-plugin

下面使用的是maven-assembly-plugin插件:

在pom.xml中加入以下内容:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-pluginartifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependenciesdescriptorRef>
                descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>这里填写主类名,例如com.clotho.util.CalculatemainClass>
                    manifest>
                archive>
            configuration>
        plugin>
    plugins>
build>

保存后,刷新Maven。

在命令行中输入:

mvn assembly:assembly

程序会自动把引用包也一起打包到jar文件中

如果使用的是IDEA,提示“Maven plugins can not be found”,可按以下步骤解决:

File -> Setting -> Build, Execution, Deployment -> Build Tools -> Maven -> 勾选Use plugin registry选项

然后,

File -> Invalidate Caches -> Invalidate and Restart(重启IDEA)