我正在使用maven为java应用程序构建一个war包。这个战争包括一些属性文件(每个env大约有10个文件)但它需要根据环境更新(dev,test,stage, prod)在以下文件夹中。
/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/
/usr/local/tomcat/webapps/ROOT/js
/usr/local/tomcat/webapps/axis2/WEB-INF/classes/templates/
/usr/local/tomcat/webapps/axis2/WEB-INF/classes/
截至目前,我在每个虚拟机中都有一个脚本,用于将这些属性文件复制到提取的war文件夹中。但它很麻烦。因此,我需要在构建过程中更新这些属性文件。
问题:我们如何在maven或jenkins中实现这一目标?
答案 0 :(得分:1)
要为多个环境构建,您可以使用新的multienv-maven-plugin
,在项目中提供不同的配置,并在单个构建中为不同的环境构建。
例如,您的项目将提供不同的环境配置:
src
├── main
├── environments
├── dev-01
│ └── first.properties
├── dev-02
│ └── first.properties
├── test-01
│ └── first.properties
├── test-02
│ └── first.properties
└── prod
└── first.properties
该插件会根据上面的配置创建不同的人工制品:
- artifactId-version-dev-01.war
- artifactId-version-dev-02.war
- artifactId-version-test-01.war
- artifactId-version-test-02.war
- artifactId-version-prod.war
然后您不需要进一步的脚本,而是将每个人工制品部署到其相关的目标环境。