2013-02-25 85 views
4

假設我得到一個屬性從什麼地方文件中,有這樣定義:如何引用另一個屬性內的maven屬性?

dog=POODLE 

和運行Maven的時候,我通過與屬性名稱的參數來查找:

mvn clean install -animal=dog 

我需要能夠在pom.xml不知道什麼來查找(我還不知道,我正在找了一個「狗」的屬性檢索值"POODLE",而只是說我在找了一個「動物」)。

可以這樣做?

我可以參考pom ${animal}哪些將被dog取代,但我需要再看看。

我很無辜的嘗試以下,但它不會工作:

${${animal}} 

謝謝!

回答

3

如果使用-Danimal=${dog}它應該工作。這是我的例子

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>nested-property</groupId> 
    <artifactId>nested-property</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <properties> 
     <dog>POODLE</dog> 
    </properties> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.soebes.maven.plugins</groupId> 
       <artifactId>maven-echo-plugin</artifactId> 
       <version>0.1</version> 
       <executions> 
        <execution> 
         <phase>install</phase> 
         <goals> 
          <goal>echo</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <echos> 
         <echo>Animal: ${animal}</echo> 
        </echos> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

運行有:mvn -Danimal=${dog} install

結果

[INFO] --- maven-echo-plugin:0.1:echo (default) @ nested-property --- 
[INFO] Animal: POODLE 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
+0

這是一個有效的解決方案,但讓我們改變這一點(謝謝!): 比方說,你仍然收到一個參數'-Danimal = dog'。 而'pom.xml'我現在需要檢索兩個不同的屬性值裏面:'dog.name = TONY'和'dog.race = POODLE'。 我確定地知道,無論我通過參數獲得什麼動物,我總是希望通過後綴'$ {animal} .name'和'$ {animal} .race'來引用這些屬性。 任何想到如何傳遞一次''dog''值並重用它,而不必傳遞兩個不同的參數:'-Danimal.name = TONY -Danimal.race = PODDLE'? – 2013-02-25 20:49:22

+0

@Tomer K也許你應該考慮爲不同的財產星座使用不同的[profiles](http://maven.apache.org/guides/introduction/introduction-to-profiles.html)。 – FrVaBe 2013-02-26 07:37:31

+0

所以我想。再次感謝你的幫助! – 2013-02-26 14:17:48

相關問題