maven版本: 3.5.2
java版本:1.8
背景
最近项目是用maven构建,之前为了方便一直沿用eclipse导出功能导出可运行的jar包,现在改用maven打包遇到的一些问题总结。
maven打包的方式介绍
(1)打包普通(不可运行的包)jar包
这个比较简单,不需要特殊配置,只需要按照maven的命令来执行即可。
(2)打包可运行的jar包
打包可运行的jar包目前我用到的有以下两种方式:
包含所有依赖到目标jar包
所有依赖的jar包放在指定目录下
打包的步骤如下:
编写源码,代码需要有main入口
配置pom.xml,添加相关的打包配置
执行 maven package 打包命令
mvn clean package
如果需要跳过单元测试,则执行
mvn clean package -U -DskipTests
包含所有依赖到目标jar包
在pom.xml中的节点中添加一下插件,内容如下:
maven-assembly-plugin
false
jar-with-dependencies
com.xxx.uploadFile
make-assembly
package
assembly
所有依赖的jar包放在指定目录下
只分离lib文件的方式的插件配置:
org.apache.maven.plugins
maven-jar-plugin
true
lib/
com.samples.App
org.apache.maven.plugins
maven-dependency-plugin
copy
package
copy-dependencies
${project.build.directory}/lib
指定编译jdk版本和将资源文件和lib文件归类分离的方式下插件配置:
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
1.8
1.8
UTF-8
${java.home}/lib/rt.jar
org.apache.maven.plugins
maven-dependency-plugin
${project.build.directory}/lib
false
false
copy-dependencies
package
copy-dependencies
org.apache.maven.plugins
maven-resources-plugin
2.6
copy-resources
package
copy-resources
UTF-8
${project.build.directory}/resources
src/main/resources/
true
Dockerfile
copy-command
package
copy-resources
UTF-8
${project.build.directory}
src/main/resources/
true
Dockerfile
org.apache.maven.plugins
maven-jar-plugin
2.4
true
lib/
false
com.samples.App
resources/
**/*.class
注意:其中的资源文件和lib文件夹可以自由指定
参考
本文由 xinghua 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 一月 12,2021