2016-03-15 151 views
0

我對Spring應用程序(Maven)有以下部署管道。Spring應用程序Jenkins部署環境

建設 - >開發 - > TST - > PROD

戰爭文件是建立在第一個步驟,然後複製到每個環境。我現在面臨的問題是我需要不同環境的不同屬性。我創建了以下屬性文件:

  • application-dev.properties
  • application-int.properties
  • application-prod.properties

什麼是自動分配正確的最佳實踐環境到每個部署步驟,以便自動選擇每個環境的相應屬性文件。

對於本地測試,我使用了以下內容。但我不知道如何將它轉移給詹金斯。

-Drun.jvmArguments =「 - Dspring.profiles.active =」 INT「

回答

1

最好的辦法是遵循12 FActor App原則,其中所有的屬性都通過環境變量傳遞到您的應用程序,將符合」雲本地「應用程序

但是,如果你不想這樣做,你可以按照你所描述的方式來使用它。 WAR文件,它非常不靈活,因爲隨着一些環境屬性的變化,您需要啓動新的版本 - >新版本

這種方法最大的問題是它不能縮放。在雲環境中,您可能想要擁有許多不同配置的不同PROD環境。如果您的WAR工件鎖定配置與單個配置文件,您只有一個PROD配置。

某些部署系統以配置文件佔位符的方式工作,並在部署期間替換這些佔位符。因此,您可以擁有一個PROD配置文件,但部署管道將使用不同PROD節點的值替換佔位符。

0

,我認爲有以下幾個選項:
如果您堅持使用相同的構建戰爭的所有環境中,您可以添加一個Global MAVEN_OPTS:在詹金斯進入主菜單Manage Jenkins->Configure System和嘗試設置Global MAVEN_OPTS有: -Dspring.profiles.active=int

另一種選擇應該是使用Maven Profile在Jenkins中用相應的屬性文件構建特定的戰爭。因此,在您的Jenkins作業配置中,在構建步驟中添加goals and options maven命令(對於clean install –Pint,其中「int」是Jenkins的Maven配置文件ID

相關問題