jenkins为不同的环境建设

我目前在开发框上安装了Jenkins实例。 这种构建很好,并且可以毫无问题地部署到我们的开发环境中。

在构建过程中,我的项目使用包含诸如数据库连接URL之类的详细信息的单个属性文件(这些细节显然会根据我指向的环境而变化)。

我想知道的是,配置项目的最佳方法是什么,以便当我想发布到Production时,Jenkins构建的WAR文件包含Production属性而不是Development?

(注意我也在我的项目中使用Maven)。

你可以创建不同的maven配置文件,比如devprod ,然后在配置文件设置中,使用/过滤相应的资源文件,如.../(dev|test|prod)/project.properties和Jenkins,当你构建不同的平台,使用-Pdev or -Pprod构建以获得正确目标的战争。

您可能需要检查maven配置文件,maven资源过滤以获取详细配置。

不相关的东西,如果可能的话,通过jndi连接数据库。

我知道3种选择:

  1. 我们过去曾使用过maven.-profiles,但它们的缺点是maven的release-plugin不能用于配置文件,所以我们不得不手动更改版本而无法在文件中部署工件。像nexus这样的远程存储库。

  2. 另一个选项是mavens assembly-plugin。 据我所知,这可以与release-plugin一起使用。

  3. 我们决定编写一个简单的工具,在maven-build过程之后更改war文件。 它分开运行Jenkins-Job。 理念是,构建和配置是两个单独的步骤。 从maven中传出的工件总是处于默认配置状态。 如果我们需要生产版本的配置,我们会启动一个jenkins作业来完成war文件的配置。