2012-12-16 52 views
0

Maven的配置文件和過濾我試圖以產生兩個不同的版本指定的Web歸檔的戰爭)使用行家型材過濾一個給定的戰爭:建立兩個不同的版本,從日食

  1. 的第一個用於本地部署我的本地機器上的本地主機
  2. 第二個用於遠程deplo yment to cloudfoundry

根據應用程序是部署到本地機器還是部署到cloudfoundry,存在許多屬性。

當然難的一點是,我試圖從STS/Eclipse的做了這一切,並在Eclipse部署到我本地的Tomcat和cloudfoundry ...

任何人都可以請提供意見,建議或建議?

回答

5

如果您使用Spring版本3.1+,Spring bean配置xml中<beans>的「profile」屬性將是最佳選擇。看看這裏的文檔:http://docs.cloudfoundry.com/frameworks/java/spring/spring.html#using-spring-profiles-to-conditionalize-cloud-foundry-configuration

基本上你需要指定至少2個元素。一個用於您的本地屬性(profile="default"),另一個用於部署到CF的屬性。後者應定義爲<beans profile="cloud">。在本地運行時,「雲」內的屬性將被忽略,「默認」中的屬性將生效。當推送到CF時,CF將檢測到名爲「cloud」的配置文件,並且更好地注入由CF本身提供的服務的相應數據源連接信息。您也可以在該文檔中找到詳細的CF指定屬性。

有關資料特徵的更多信息,看到這裏的文檔:http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/

+0

嗨威廉,非常感謝您的意見!我還有一個關於spring profile的訊問:假設我有以下屬性:屬性文件中有'kadjoukor.websiteContext = http:// localhost:8080/kadjoukor',可能還有該屬性的另一個生產/雲值。我使用@Value註解來使用此屬性。在這種情況下,彈簧配置如何幫助? – balteo

1

考慮生成每個工件的單個項目。因此,一個項目生成您的本地部署,一個項目生成您的Cloudfoundry部署。

覆蓋(http://maven.apache.org/plugins/maven-war-plugin/overlays.html)是在現有WAR文件中額外文件中烘焙的正式認可方式,可提供新的WAR工件。非常有用,但在開發過程中可能會過於緩慢。

+0

非常感謝您的回覆!托爾比約恩我並沒有意識到這個maven特性......我在將套件部署到Eclipse的tomcat時遇到了問題,但這是一個不同的問題,所以我將打開另一個線程。 – balteo

+0

但還有一個問題:我可以將戰爭覆蓋部署到cloudfoundry嗎? – balteo

+0

這個輸出仍然是一場戰爭。仔細檢查內容 –