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 后的参数来打包不同目录下的配置文件。

用maven啊,maven可以指定三种构建模式
1,开发
2,测试
3,部署
你可以设定,在开发时连接 127.0.0.1:1,测试时连接127.0.0.1:2,部署时连接127.0.0.1:3
然后可以按照不同的环境打包
如果现在是开发,就打开发的包,如果是部署就打部署的包,这样maven就会按照你指定的操作读取对应的配置信息

发表评论

电子邮件地址不会被公开。 必填项已用*标注