【发布时间】:2011-06-14 15:50:33
【问题描述】:
我有一个项目,其父 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 配置文件......
当属性 debug 的值为true 时,您知道如何将jboss-seam-debug 依赖项添加到我的子模块吗?
实际上,这是我的全部需求,但有点复杂。
这是我的父母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>
...
通常,我只是在mvn 命令行上传递-Denv=dev 并希望我的子模块仅在属性debug 定义为true 时才激活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 不起作用,因为我没有通过 system 属性 -Ddebug=true,它是由我激活的 maven 属性父母pom.xml,我的孩子没有“看到”...
【问题讨论】:
标签: xml maven dependencies profile