指定部署环境

时间:2016-05-17 15:43:49

标签: java maven jenkins

我正在使用在.properties文件中定义服务器特定属性的应用程序。捆绑的应用程序定期部署到不同的Development,UAT和Production服务器。但是,在每次部署之前,必须手动更改捆绑的属性文件以匹配其部署到的服务器。

是否有任何标准化或自动化的方式来参数化我正在部署的服务器?即,在Jenkins中,我可以指定类似'mvn package UAT'的东西,它会自动更新我的.properties文件吗?

感谢任何意见,谢谢!

1 个答案:

答案 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资源插件过滤。

然后你得到了:

  • UAT.properties
  • Production.properties

然后,您可以使用maven个人资料名称进行构建:

mvn package -PUAT