java maven jar 打包_maven工程打包jar以及java jar命令的classpath使用

本文介绍了如何使用Maven将工程打包成jar文件,并探讨了不同情况下运行jar文件的命令。内容包括maven-jar-plugin的配置,如何处理依赖,以及在依赖不在同一目录时的运行方法。此外,还提到了maven-rar-plugin的使用。
摘要由CSDN通过智能技术生成

一、maven工程打包成jar文件插件。

org.apache.maven.plugins

maven-jar-plugin

2.3.2

com.wjl.Main

二、打包完工程的jar和依赖都在同一目录。

3611ac5a80c94f3d48b573274d3ecde0.png

(1)如果通过maven打包时,指定了且正确。其效果完全等价于其他打包方式,自己在MANIFEST.MF指定好了Class-Path。

此时,运行的命令,直接运行jar包即可。

java -jar hello-test-0.0.1-SNAPSHOT.jar

(2)如果没有指定和,或者手动设置MANIFEST.MF。此时,即便依赖的jar包都在相同目录下,指定运行的classpath。

这个时候,容易想当然,把命令错误的写成:

//错误展示

java -cp jackson-core-asl-1.9.4.jar:jackson-mapper-asl-1.9.4.jar -jar hello-test-0.0.1-SNAPSHOT.jar

实际上正确的写法应该是:

java -cp jackson-core-asl-1.9.4.jar:jackson-mapper-asl-1.9.4.jar:hello-test-0.0.1-SNAPSHOT.jar com.wjl.Main

通过指定当前目录的方式,可以缩写为:

java -cp ./*:hello-test-0.0.1-SNAPSHOT.jar com.wjl.Main

三、如果运行的jar和依赖不在同一目录。

8bd2bc4e0dffc1f15042d8dcbeac28ad.png

这个情况简单就是maven插件指定了为true,同时指定了。

这样生成的MANIFEST.MF的classpath,都会在每个jar包的路径上带上prefix,使得java命令可以找到。

如果没有这样配置,那么就要在运行命令时,指定classpath了,命令如下:

java -cp lib/*:hello-test-0.0.1-SNAPSHOT.jar com.wjl.Main

四、maven插件把依赖的所有jar包找出来

org.apache.maven.plugins

maven-rar-plugin

2.4

配置该插件,然后需要执行命令 mvn rar:rar 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值