2014-03-06 94 views
3

我有3個環境:我如何爲不同的環境構建安裝我的maven pom?

  1. 本地(DEV)
  2. 分期
  3. 生產

每個環境使用不同的屬性文件(例如,以指定JDBC屬性)。目前,我的maven項目構建了一個戰爭文件。有人可以請給我一些關於如何修改pom.xml文件的指導,以便我可以指定不同的版本?

例如,如果我需要爲舞臺構建戰爭文件,我需要對pom.xml文件做些什麼才能做到這一點,以便使用戰略屬性文件(包含在戰爭中)?

讓我對我的構建更清晰一點。我使用spring mvc,所以我可以切換哪個環境(例如屬性文件)。這種方式的完成方式是通過在web.xml中設置上下文參數,如下所示。

<context-param> 
<param-name>spring.profiles.active</param-name> 
<param-value>dev</param-value> 
</context-param> 

所以,基本上,如果我使用maven配置文件,我該如何換出這個參數值?

回答

1

你必須在你的pom.xml定義不同的環境配置文件

<profiles> 
    <profile> 
    <activation> 
     <property> 
     <name>environment</name> 
     <value>test</value> 
     </property> 
    </activation> 
    ... 
    </profile> 
</profiles> 

或給它一個特定的ID /名稱這樣

<profiles> 
    <profile> 
    <id>profile-1</id> 
    ... 
    </profile> 
</profiles> 

,並使用mvn groupId:artifactId:goal -Pprofile-1

您運行mvn可以找到更多的信息here

+0

我認爲這是我想要下去的路徑,使用配置文件,但文檔並沒有真正說明如何更改參數值(請參閱修改的文章)或交換文件。它幾乎就像我需要一種方式來表達在pom.xml中這種類型的邏輯:if profile = dev,然後設置spring.profiles.active = dev。 –

+0

你可以在你的spring配置文件' $ {spring.config}'中使用,並且在每個配置文件裏定義一個參數' [your env]' 確保你正在處理你的spring配置文件作爲maven中的一個資源,btw –

+0

謝謝你,做到了。 –

相關問題