2011-01-24 37 views
1

我有一個父pom.xml它定義配置文件的項目,和debug簡介:添加依賴當一個配置文件被激活

<profile> 
    <id>debug-true</id> 
    <activation> 
     <property> 
      <name>debug</name> 
      <value>true</value> 
     </property> 
    </activation> 
</profile> 

我想是我的子模塊一個補充當配置文件debug被激活時,依賴項jboss-seam-debug

我寫了這孩子的pom.xml:

<profiles> 
    <profile> 
     <id>debug-true</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.jboss.seam</groupId> 
       <artifactId>jboss-seam-debug</artifactId> 
      </dependency> 
     </dependencies> 
    </profile> 
</profiles> 

但它不工作,這種依賴是不是當我指定-Ddebug=true依賴關係樹的一部分......它就像孩子們的pom.xml重 - 定義我的debug資料...

你知道我怎麼能添加jboss-seam-debug依賴於我的子模塊時財產debug的值爲true


其實,這是我的全部需要,這是一個更復雜一點。

這裏是我的父母pom.xml

<profiles> 
    <profile> 
     <id>env-dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
      <property> 
       <name>env</name> 
       <value>dev</value> 
      </property> 
     </activation> 
     <properties> 
      <debug>true</debug> 
    ... other properties ... 
     </properties> 
    </profile> 
    ... 

一般來說,我只是通過-Denv=devmvn命令行上,並希望我的子模塊激活jboss-seam-debug只有當財產debug被定義爲true所以我寫在子模塊pom.xml

<profiles> 
    <profile> 
     <id>debug-true</id> 
     <activation> 
      <property> 
       <name>debug</name> 
       <value>true</value> 
      </property> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>org.jboss.seam</groupId> 
       <artifactId>jboss-seam-debug</artifactId> 
      </dependency> 
     </dependencies> 
    </profile> 
    ... 

這並不僅通過傳遞-Denv=dev因爲工作我沒有通過系統財產-Ddebug=true,它的行家財產由我的父母pom.xml激活,而我的孩子沒有「發現」 ......

回答

1

這是因爲配置文件不inhertited行家。這意味着子代POM中的debug-true不會激活父母POM中的配置文件,也稱爲debug-true

有兩種可行的解決這個:

1)調用mvn -Pdebug-true,這將觸發coresponding輪廓在每個POM

2)添加激活碼每個 POM

我個人先決解決方案。

+0

實際上,它似乎更加複雜:[MNG-3228](http://jira.codehaus.org/browse/MNG-3228?focusedCommentId=231452&page=com.atlassian.jira.plugin.system .issuetabpanels:comment-tabpanel#action_231452) – 2011-02-02 09:17:17

相關問題