Spring导出可以运行的jar包问题如何解决(jar,spring,开发技术)

时间:2024-05-09 06:29:05 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Spring%E5%AF%BC%E5%87%BA%E5%8F%AF%E4%BB%A5%E8%BF%90%E8%A1%8C%E7%9A%84jar%E5%8C%85%E9%97%AE%E9%A2%98%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3

最近需要解决Maven项目导入可执行的jar包的问题,如果项目不包含Spring,那么使用mvn assembly:assembly即可

可是如果包含Spring,那么这么方法就不可行,报错:

我在网上折腾了两天,这是assembly的一个bug。

据说原因是spring的多个jar包中都含有spring.handlers和spring.schemas文件,而assembly只会把第一次遇到的文件打入jar包,后面遇到的都会skip掉。

解决方法就是放弃assembly,使用shade插件来打包.在shade的打包配制中指明spring.handlers和spring.schemas文件会以append方式加入进来,从而确保其他spring的jar中的这两个文件的信息不会被遗漏。

下面是一个非常简单的例子,只有四个文件的Maven工程,代码再附件内:

在命令行运行:mvn package

然后在target目录会产出一个jar包:my-spring-app.jar

运行即可:java -jar target/my-spring-app.jar

当然也可以这么运行:java -classpath target/my-spring-app.jar com.exec.Main

本文:Spring导出可以运行的jar包问题如何解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:python3使用cookie免登录爬取附件并下载下一篇:

1 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18