嗨你如何解決這個問題?針對不同服務器的不同配置文件
我有一個應用程序中,我有幾個配置文件,我讓戰爭文件和tomcat的部署。
但同時我必須製作戰爭文件並在不同的環境下部署相同的應用程序和/或使用修改後的配置文件部署相同的應用程序。
我可以在螞蟻中創建自己的任務,並替換所需的參數,但可能有移動到maven的可能性,無論如何我不確定它。或者我可以使用類似spring的屬性佔位符配置器或jgroups的東西
嗨你如何解決這個問題?針對不同服務器的不同配置文件
我有一個應用程序中,我有幾個配置文件,我讓戰爭文件和tomcat的部署。
但同時我必須製作戰爭文件並在不同的環境下部署相同的應用程序和/或使用修改後的配置文件部署相同的應用程序。
我可以在螞蟻中創建自己的任務,並替換所需的參數,但可能有移動到maven的可能性,無論如何我不確定它。或者我可以使用類似spring的屬性佔位符配置器或jgroups的東西
Spring可以以各種方式很好地處理此問題。我發現最有用和最靈活的方法是在每個環境中設置一個系統變量,以指定trhe環境名稱,例如測試,dev,int,prod等
然後Spring可以使用這個系統變量來加載正確的屬性文件。根據您的需要,這些屬性文件可以與應用程序捆綁在一起或從外部位置加載。即使世界在這裏了類似的做法的一個例子:
我部署打包爲一個WAR要麼Tomcat或的WebLogic不作任何改變彈簧的應用程序。它將包含Tomcat的META-INF/context.xml和WebLogic的weblogic.xml。不用擔心,沒有變化。
我們所做的是爲環境特定的屬性創建文件夾結構。在該文件夾下,我們爲每個針對部署的特定環境(包括本地開發)創建了文件夾。它是這樣的:
Project
\
-Properties
\
-Local (your PC)
-Dev (shared dev server)
-Test (pre-production)
-Prod (Production)
在我們把性能/配置文件的副本平行,把不同的配置僅在相應的文件夾中的文件的每個文件夾。祕密是控制部署環境的類路徑。我們在每臺服務器上定義了一個PROPERTIES類路徑條目。在Prod上,它將被設置爲「$ ProjectDir/Properties/Prod」,而在Test上相同的變量將被設置爲「$ ProjectDir/Properties/Test」。
這樣我們就可以爲dev/test/prod數據庫預先配置數據庫連接字符串,並且不必在每次我們想爲不同的環境構建時在屬性文件中籤出/檢出。
這也意味着我們可以在不重建的情況下將完全相同的.war/.ear文件部署到Test and Prod。我們通過在每個環境中使用相同的JNDI名稱,但使用特定於該環境的值,以類似的方式處理屬性文件中未聲明的任何屬性。
http://www.gifnoc.com/config可以幫助它存儲在一箇中心位置配置和客戶從拉針對不同的環境
,並有可能將其用於製造戰爭文件帶有一點點修改後的配置文件的文件?例如。對於some.properties屬性中的一個war文件地址= 1,對於同一文件中的第二個war文件something.properties address = second? thx – blefesd 2009-07-16 19:58:12