我正在使用在.properties文件中定义服务器特定属性的应用程序。捆绑的应用程序定期部署到不同的Development,UAT和Production服务器。但是,在每次部署之前,必须手动更改捆绑的属性文件以匹配其部署到的服务器。
是否有任何标准化或自动化的方式来参数化我正在部署的服务器?即,在Jenkins中,我可以指定类似'mvn package UAT'的东西,它会自动更新我的.properties文件吗?
感谢任何意见,谢谢!
答案 0 :(得分:2)
最简单的方法是使用maven配置文件名称。具体来说,在项目中创建每个配置文件的属性文件,并使用配置文件名称和一些替换将该文件应用为过滤器。
它分为两部分,简介定义:
<profiles>
<profile>
<id>test</id>
<properties>
<profileName>test</profileName>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<profileName>dev</profileName>
</properties>
</profile>
<profile>
<id>uat</id>
<properties>
<profileName>uat</profileName>
</properties>
</profile>
<profile>
<id>preprod</id>
<properties>
<profileName>preprod</profileName>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileName>prod</profileName>
</properties>
</profile>
</profiles>
过滤器定义:
<build>
<filters>
<filter>src/main/filters/${profileName}.properties</filter>
</filters>
</build>
此外,请确保您希望执行替换的资源文件由maven资源插件过滤。
然后你得到了:
然后,您可以使用maven个人资料名称进行构建:
mvn package -PUAT