spring - JAVA-WEB在正式环境中发布程序的正确步骤是什么?
本文介绍了spring - JAVA-WEB在正式环境中发布程序的正确步骤是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
目前的做法是
1、使用Jenkins拉取在gitlab中master的最新代码
2、Jenkins会在测试完成并且成功后将项目打包成war并部署
那么问题是:
1、在项目中的配置文件如队列地址,数据库地址用户名密码,这些信息目前直接push到了master上,直觉告诉我这肯定是不对的,那么发布的时候怎么保证他能一起打包进去?
2、如果不是用的打包的方法,对配置文件的分发有什么工具?
3、我们知道当一个web项目丢到了tomcat,他自动去进行部署,如果先把代码编译成.class文件包丢进去再分发配置文件,岂不是一定会先部署失败?
4、如果以上的假设都是不对的,那么现在一般是怎么管理的?
受够了重复打包上传的工作所以部署了Jenkins,那么我想对配置文件的管理必然也有便捷的方式,遂来请各位指点迷津。
解决方案
如果楼主使用的是 maven 来进行依赖管理,可以使用 profile 来配置,在build期使用不同的配置。
1、pom.xml中添加如下配置:
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<prop.dir.name>local</prop.dir.name>
</properties>
</profile>
<profile>
<id>online</id>
<properties>
<prop.dir.name>online</prop.dir.name>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<prop.dir.name>test</prop.dir.name>
</properties>
</profile>
</profiles>
上述配置,共配置了三个不同的环境,local、online以及test,并且默认使用的是local。
2、配置文件引入方式:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>profile/${prop.dir.name}/*</include>
</includes>
</resource>
</resources>
配置文件在 profile 目录下,目录结构:
profile
├── local
├── online
└── test
3、war 打包方式
mvn -U clean install -Ponline
上述命令将打包online下的配置文件,可以替换 -P
后的参数来打包不同目录下的配置文件。
这篇关于spring - JAVA-WEB在正式环境中发布程序的正确步骤是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文