一些系统服务是通过java -jar xx.jar xx.xxx.Aaa param1 param2来启动服务,问题就接踵而来了,
xx.jar的jar包依赖怎么解决?
解决方式一:
1、通过配置maven依赖,将所有依赖打成一个jar包;
该方式存在问题,如果某些依赖需要通过system${project.basedir}/lib/neo4j-server-1.9.2-static-web.jar解决,
将所有依赖打成一个jar包就会有问题
org.neo4j.app
neo4j-server-web
1.9.2
system
${project.basedir}/lib/neo4j-server-1.9.2-static-web.jar
maven-assembly-plugin
jar-with-dependencies
com.sniper.neo4j.util.Neo4jServerUtil
make-assembly
package
single
2、通过maven插件打包的时候设置classpath路径,将依赖的jar包打成路径放到MANIFEST.MF中,但是system方式的依赖同样存在问题
org.apache.maven.plugins
maven-jar-plugin
2.4
true
lib/
com.sniper.neo4j.util.Neo4jServerUtil
3、通过java -cp .;lib/* xx.xx.Aaa的方式运行就可以解决
只要将打成的jar包、依赖的jar包都拷贝到lib文件夹下就可以
注意,windows下的分割符是分号;,linux下的分隔符是冒号:
org.apache.maven.plugins
maven-dependency-plugin
2.8
copy-dependencies
package
copy-dependencies
false
false