我们知道现在利用MAVEN来管理JAVA项目是非常常见的。比如公司一般都有一个自己的MAVEN仓库,通过MAVEN仓库来解决我们的项目依赖,更加方便的构建项目。但是我们又如何生成JAR包,放到LINUX服务器上运行呢?如果涉及到一些第三方的JAR依赖,该如何处理呢?现在,将我的经历写下来,分享给大家。
首先,我们要导出代码为JAR,这一步,我们可以不利用MAVEN插件来进行,因为如果利用MAVEN插件的话,生成可执行的JAR,需要配置,比较繁琐,可以直接利用ECLIPSE的export功能进行导出生成JAR,并指定运行的主函数。
其次,我们需要一份MAVEN依赖的JAR包。要知道pom.xml中指定的JAR包都被下载到了本地的.m2/repository下,我们如何搞到一份所依赖的JAR将他们都放入到lib目录下呢?到.m2/repository下挨个COPY JAR包,显然这并不好。我们可以利用MAVEN的命令来完成COPY JAR包的工作。具体操作如下:
进入到工程的根目录后,执行
mvn dependency:copy-dependencies -DoutputDirectory=target/lib
这样在target目录下,就有一个lib目录下本项目所需要的JAR包就都被COPY到了这里了。
最后,java -Djava.ext.dirs=./lib/ -jar ./xxx.jar
由于我们是指定JAR选项来运行,所以不能使用classpath选项来指明寻找第三方JAR的路径,因为此时classpath已经失效了。但是我们可以利用-Djava.ext.dirs来简单的指定。