2011-01-24 36 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

相关问题