在这之前,我自己找了点maven的东西添加进来
Maven内置变量说明:
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容
方式1
修改pom.xml增加如下内容
org.apache.maven.plugins
maven-jar-plugin
2.4
true
lib/
com.sysware.HelloWorld
运行mvn clean package即可
批注:
经过我本人自测之后发现,这种方式虽然可以打包,但是不会将依赖包也添加进去。所以我认为这种方式的打包适合写一个工具,然后打成JAR包,导入其他工程使用,如果是一个单独运行的JAR包,则不适用。
方式2
在pom.xml增加如下内容
org.apache.maven.plugins
maven-assembly-plugin
2.3
false
jar-with-dependencies
com.juvenxu.mvnbook.helloworld.HelloWorld
make-assembly
package
assembly
运行mvn assembly:assembly (
我自己使用mvn clean package也是可以的)
批注:
这个方式和方式1不同,这种打包方式,将项目及所依赖的所有jar包打包成一个jar,让打出来的JAR包成为一个可独立运行的JAR包
方式3
批注:
我自己在博主的基础上,添加了一些配置和注释
方式3和方式4都是比较复杂的打包方式,但是可以自己定义细节,比如需要哪些文件被打包,哪些文件不打包进去,哪些文件放到哪里等等。
test-${project.version}
src/main/java
src/main/resources
${project.build.directory}
*.txt
*.properties
org.apache.maven.plugins
maven-compiler-plugin
lib
1.7
1.7
UTF-8
org.apache.maven.plugins
maven-jar-plugin
true
lib/
com.eya.main.Hello
org.apache.maven.plugins
maven-dependency-plugin
copy
package
copy-dependencies
${project.build.directory}/lib
org.apache.maven.plugins
maven-resources-plugin
2.4
UTF-8
maven-source-plugin
2.1
true
UTF-8
compile
jar
方式4
${project.build.directory}/classes
src/main/resources
true
**/*.xml
org.apache.maven.plugins
maven-compiler-plugin
3.0
1.6
1.6
UTF-8
org.apache.maven.plugins
maven-shade-plugin
2.0
package
shade
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
com.test.testguava.app.App
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
applicationContext.xml
true
executable