springboot(maven)项目打包问题-阿里云开发者社区

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

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的这一段配置注释,需要进行打包外部运行前,解除注释。

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

相关文章
springmvc项目,浏览器报404错误的问题
问题描述: 建立了web工程,配置pom.xml,web.xml,编写controller类,在spring-mvc-servlet.xml文件中指定开启注解和扫描的包位置 .打开tomcat,在浏览器中访问,提示404错误 问题分析: 一.
1570 0
走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
本文出自我的公众号:程序员江湖。 满满干货,关注就送。 小李的Build之路(上) 转自: 刘欣 码农翻身 2016-07-10 摘要:手工Build的烦恼要不是为了和女朋友留在一个城市,小李肯定去北上广奋斗去了。
1658 0
【bootstrap】modal模态框的几种打开方法+问题集锦
第一部分:   关于bootstrap中modal的使用,下面把几种自己用的打开方法展示出来   首先呢,得有个Bootstrap的页面,这里就不说了。   其次呢,得有个modal放在页面中,不管你这段代码加在页面代码的什么地方,默认是不会显示出来的  ...
1501 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12077 0
SpringBoot Jpa 使用问题解决整合
1. 启动项目报错 Not a managed type: class com.xzxx 这种问题一般出在多模块开发中的依赖传递导致的问题,该问题的原因是启动类找不到对应的bean。
922 0
Unity 之 关于UnityHub无法打开项目的问题(弹出Unity启动界面有退回到Hub选择工程界面)
弹出Unity启动界面有退回到Hub选择工程界面方案一:万能的重启大法;方案二:未开启许可证;方案三:终极奥义 -- 弃用Hub
93 0
IntelliJ IDEA 将 Maven 构建的 Java 项目打包
前言 IntelliJ IDEA 编译生成 Jar 包的方式与 Eclipse 不同,如何将此 Maven 构建 Java 推荐引擎项目生成 Jar 包确实搜索了不少资料,有成功的有失败的,特将此验证成功的方法记录下来分享给遇到此类问题的朋友。
2465 0
解决springboot项目页面地址栏出现的jsessionId问题
在项目启动类中重写SpringBootServletInitializer类中的onStartup方法 亲自测试过在配置文件中配置server.servlet.session.tracking-modes=和server.
2267 0
JAVA EE 第一阶段项目问题
一: 乱码   原因:         由于同组的其他同学的myeclipse默认的编码方式是GBK,而我的默认的是UTF-8。所以当我使用svn把其他同学提交到组长那里去的代码下载下来的时候,就全乱码了!  解决问题:       我直接在Window---》Preferences-->General-->Workspace-->这里改           我上课不怎么喜欢带手机的。
548 0
+关注
涂宗勋
认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
274
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载