springmvc 打成jar包_SpringMVC项目使用maven打可执行jar包 引用本地依赖包

这两天使用maven项目需要打成可执行jar包,而且需要依赖本地项目jar包,然后出现了各种问题,maven打jar包后各种本地依赖包找不到;使用java打包和Eclipse导出可执行jar包后,jar包内的class文件都找不到路径。累死累活整了2天才可以正常执行。废话不多说,直接上说明:

pom.xml关键配置:

第一步:

org.apache.maven.plugins

maven-shade-plugin

2.4.1

package

shade

cc.eslink.etbc.StandaloneBoot

META-INF/spring.handlers

META-INF/spring.schemas

以上代码可以参考一下出处说明

http://xxgblog.com/2015/08/07/maven-create-executable-jar/

以上打jar后MANIFEST.MF中没有生成Class-Path内容,下面会写到内容快速获取方式

使用mvn package命令打包成功后会在target目录下生产jar包,这个jar包暂时命名为A包

由于项目中有使用到本地的依赖包,所以执行后出现文件找不到错误,本地包即使打入jar包依然无法读取到,本人试过放入打jar包时连同依赖包一起打入到jar包内,然后配置MANIFEST.MF中calsspath,依然不管用,这里估计是我本人配置方法不对,但是不管他了。

第二步:拼接class-path所有依赖包名字

方法使用eclipse导出jar包

项目名上右键-export-java-Runnable JAR file 点击next  ,launch configuration 选择你的启动main方法,export des 选择你的导出路径,(library里面我选择的是第二项package···)点击finish,导出jar包,这里命名为B包,,成功后,

找到导出的B jar包打开找到MANIFEST.MF打开复制里面的Rerc-Class-Path(我本地生成的class-path是没有值得,j)内容,复制到A jar包里面的MANIFEST.MF  Class-Path下,即可。

修改执行jar中MANIFEST.MF文件

原文件内容

Manifest-Version: 1.0

Archiver-Version: Plexus Archiver

Built-By: dfsoft-ZYJ

Created-By: Apache Maven 3.3.9

Build-Jdk: 1.8.0_60

Main-Class: cc.xiaobin.etbc.StandaloneBoot //程序运行入口

增加Class-Path后:

Manifest-Version: 1.0

Archiver-Version: Plexus Archiver

Built-By: dfsoft-ZYJ

Created-By: Apache Maven 3.3.9

Build-Jdk: 1.8.0_60

Class-Path: activation-1.1.jar alipay-sdk-java20151210120052.j

ar alipay.jar antlr-2.7.7.jar aopalliance-1.0.jar•••

Main-Class: cc.xiaobin.etbc.StandaloneBoot //程序运行入口

多个jar包之间空格隔开

第三步:放入本地依赖jar包

将本地依赖jar包放入和可执行A jar包同级目录下即可,

可执行A jar包目前在test目录下,然后把本地依赖jar包全部复制到test目录下即可

第四步:执行jar包

使用【java –jar jarName.jar参数1,参数2···】执行jar包

到这里为止,本人的jar包终于可以正常执行了,也不用报路径异常,找不到文件 ,xml解析不了这些问题了。整完才发现,原来如此简单,困扰我的主要原因就是前期找不到文件的奇怪问题,命名已经打入jar包还是出现错误,害的我整了好久。原来jar包中依赖的jar包需要和他本人同级才可以正常。

使用java方式或者eclipse导出可执行jar包后,由于项目中使用到获取文件路径的代码,导致项目运行报各种路径不对,maven打包测不会。所以本人没有使用java方式。如果大神们有更好的方式,请留言告知,好让鄙人学习一下,谢谢。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值