开发者社区> 涂宗勋> 正文

springboot(maven)项目打包问题

简介: 问题说明: 今天在项目测试时遇到一个问题,启动项目时,修改外部配置文件后,会出现启动失败或者日志文件路径不对的情况。 我们的项目是springboot项目,采用jar包的方式运行,部分配置文件放在jar包外。
+关注继续查看

问题说明:

今天在项目测试时遇到一个问题,启动项目时,修改外部配置文件后,会出现启动失败或者日志文件路径不对的情况。
我们的项目是springboot项目,采用jar包的方式运行,部分配置文件放在jar包外。

上述问题的原因是:运行的jar包内和jar包外同时存在相同名字的配置文件。

根据目前项目中的maven配置,打包时在jar包内会包含一份配置文件,而当jar包内和jar包外同时存在相同名字的配置文件时,会产生一定的冲突。(网上说有优先级选择,只会选一个,但实际测试发现两个都会生效)

解决办法:

我们之前的做法是,先打jar包,然后使用压缩软件把jar里的配置文件删除,确保只有jar包外才有配置文件。
但是测试以及后续生产过程进行打包部署时,并不太愿意这样操作,因此需要对这个打包并删除jar内的配置文件的过程进行简化。
具体的做法是,在项目的pom.xml文件中增加resources的配置:


<build>
<plugins>
<plugin>
<!--这里原本的配置,省略-->
</plugin>
</plugins>
<!--以下为新增配置-->
<resources>
<resource>
<directory>src/main/resources
<excludes>
<exclude>*.properties
<exclude>logback.xml
<exclude>*.dat
</excludes>
</resource>
</resources>
</build>

有了这个配置之后,打包的时候就会排除properties结尾的、dat结尾的文件,以及logback.xml文件,可以解决上述的问题。
需要注意的是,这时候jar包中就不再包含这些配置文件,部署时就需要把jar包和svn上的相关配置文件一同给予测试和生产。

新的问题及解决办法:

上述操作解决部署过程问题,但会带来新的开发过程问题。
虽然打包可以成功排除资源文件,简化打包部署的操作步骤,但是在eclipse中运行时也会找不到资源文件,从而导致启动失败。
解决办法是,在我们开发过程中把上述resources的这一段配置注释,需要进行打包外部运行前,解除注释。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
到底应该怎么办?spring boot的maven项目打包找不到静态资源
到底应该怎么办?spring boot的maven项目打包找不到静态资源
35 0
利用IDEA创建maven多模块项目(web模块采用springboot)
项目需要,故将单个模块的项目拆分成多模块项目。
68 0
SpringBoot(三):什么是Maven?
SpringBoot(三):什么是Maven?
43 0
基于SpringBoot 2.3.7.RELEASE的Maven多模块项目构建极简教程
基于SpringBoot 2.3.7.RELEASE的Maven多模块项目构建极简教程
131 0
SpringBoot——借助Maven多模块管理实现集成SSM、Dubbo、Thymeleaf的汇总案例
SpringBoot——借助Maven多模块管理实现集成SSM、Dubbo、Thymeleaf的汇总案例
94 0
【新手教程】完整创建一个Maven + SpringBoot项目
【新手教程】完整创建一个Maven + SpringBoot项目
645 0
SpringBoot中maven项目打包时出现的问题
SpringBoot中maven项目打包时出现的问题
49 0
快速搭建微服务项目——SpringBoot+SpringCloud(使用maven方式搭建)
今天来教大家如何快速搭建一个微服务项目,其实很简单,首先使用编辑器新建一个maven项目,然后在pom.xml中添加相关的依赖包就好。
430 0
SpringBoot中maven项目打包时出现的问题
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project demo: Fatal error compiling
79 0
spring boot 使用maven和fat jar/war运行应用程序的对比
spring boot 使用maven和fat jar/war运行应用程序的对比
169 0
+关注
涂宗勋
认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
使用Spring.Initializr定制工程脚手架
立即下载
陈曦:使用Spring.Initializr定制工程脚手架
立即下载
低代码开发师(初级)实战教程
立即下载