参考博客:https://www.cnblogs.com/Binhua-Liu/p/5604841.html
:
https://www.cnblogs.com/f-zhao/p/6929814.html
配置总结:一 jar包位置1.把lib目录下所有的文件(外部依赖的jar)2.依赖的所有maven jar包3.可运行的工程jar文件的存放路径 (打开后是.class文件) 4.源代码的jar包(打开后是.java源文件) ---四部分的jar全部放到lib目录中二 启动命令位置把放在根目录(不一定是根目录)下的脚本文件.sh,.bat拷贝到bin目录中三 配置文件位置把src/main/resources目录下所有的文件拷贝到conf目录中四 对于工程运行的jar包 将jar包的路径添加到manifest中 ,同时排除一些.xml文件
配置1:此配置没有使用,把内容直接写在build中
src/main/java src/main/resources ${project.build.directory}/conf lib ${project.build.directory}/lib . //具体的脚本放置位置可以改,不一定是当前目录**/*.sh **/*.bat ${project.build.directory}/bin 打包后的jar包内部具体的图见下文图 org.apache.maven.plugins maven-compiler-plugin 3.1 true lib 1.7 1.7 UTF-8 C:\Program Files (x86)\Java\jdk1.8.0_91\bin\javac.exe org.apache.maven.plugins maven-jar-plugin 2.6 ${project.build.directory}/lib
true //将jar包的路径添加到manifest中,具体可见下图lib/ *.xml *.properties org.apache.maven.plugins maven-dependency-plugin 2.10 copy-dependencies package copy-dependencies ${project.build.directory}/lib org.apache.maven.plugins maven-resources-plugin 2.7 UTF-8 maven-source-plugin 2.4 true UTF-8 ${project.build.directory}/lib compile jar
运行mvn install后 生成的目录如下:可以看到,最终的配置都是在外面的目录,如果要部署的话,最好是三个目录在一个tar包里面(见后面的实战)
lib目录下生成两个jar,一个是源文件source.jar(.java),一个是编译后的运行jar文件(.java)
配置2.项目实战配置,使用maven-assembly-plugin
dupchk org.apache.maven.plugins maven-compiler-plugin 2.3.2 ${java.version} ${java.version} org.apache.maven.plugins maven-jar-plugin 2.4 false true lib/ com.cmsz.itbrs.dupchk.main.App org.apache.maven.plugins maven-assembly-plugin 2.4 src/main/assembly/package.xml //xml文件中配置了打包的相关配置make-assembly package single
package.xml以及脚本的具体位置
package.xml 具体的配置内容,和配置一是类似的。
bin //此处是打包名称的设置,最后是最后会生成一个dupcheck-bin.jar 文件在目录 target 下,其中前一个dupcheck来自finalName,后一个id来自assembly descriptor中的id(bin名称随便改)tar true lib false ${project.basedir}/src/main/resources config *.properties ${project.basedir}/src/main/scripts bin startup.*
打包后打开生成的tar包(dupcheck-bin.tar),可以看到以上配置的一个具体目录。
点开lib里面我们运行程序的jar包,在打开manifest.MF文件,可以看到文件里面已经将所有依赖的jar的路径写入了classpath路径