我目前在开发框上安装了Jenkins实例。这样可以很好地构建并部署到我们的开发环境中而不会出现任何问题。
在构建过程中,我的项目使用包含详细信息的单个属性文件,例如数据库连接URL(这些细节显然会因我指向的环境而异)。
我想知道的是配置项目的最佳方法是什么,以便当我想发布到Production时,Jenkins构建的WAR文件包含Production属性而不是Development?
(注意我也在我的项目中使用Maven。)
答案 0 :(得分:2)
我知道3个选项:
我们过去曾使用过maven.-profiles,但它们有一个缺点,即maven的release-plugin不能使用配置文件,因此我们必须手动更改版本无法在nexus等远程存储库中部署工件。
另一个选项是mavens assembly-plugin。据我所知,这可以与release-plugin一起使用。
我们决定编写一个简单的工具,在maven-build过程之后更改war文件。它分开运行Jenkins-Job。理念是,构建和配置是两个单独的步骤。从maven中传出的工件总是处于默认配置状态。如果我们需要生产版本的配置,我们会启动一个jenkins作业来完成war文件的配置。
答案 1 :(得分:1)
您可以创建不同的maven配置文件,例如dev
,prod
,然后在配置文件设置中,使用/过滤相应的资源文件,例如.../(dev|test|prod)/project.properties
和Jenkins,当您构建时不同的平台,用-Pdev or -Pprod
构建以获得正确目标的战争。
您可能需要检查maven配置文件,maven资源过滤以获取详细配置。
不相关的东西,如果可能的话,通过jndi连接数据库。