java – 根据其他属性值在maven中定义属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 根据其他属性值在maven中定义属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1489字,纯文字阅读大概需要3分钟。
内容图文
我想创建一个具有以下结构的maven项目:
A
|--pom.xml
|--B
|--pom.xml
|--C
|--pom.xml
其中A,B和C是文件夹,B的pom.xml和C的pom.xml是A的pom.xml的子代.我想在B的pom.xml中有以下部分:
<properties>
<some.property>B</some.property>
</properties>
而在C:
<properties>
<some.property>C</some.property>
</properties>
我希望在某个东西中根据某些属性的值来定义其他几个属性的值.因此,例如,在伪代码中,A会执行以下操作:
if ( some.property == 'B') then
some.other.property = 'some-value-based-on-b'
else if ( some.property == 'C') then
some.other.property = 'some-value-based-on-c'
...
我想运行mvn clean install,参考A的pom.xml(其中包含一个指向B和C的模块部分),因此,据我所知,我不能使用配置文件(因为在maven2项目中运行reactor继承了相同的活动配置文件.我可以使用maven3,但是如果它改变了什么就找不到).
有谁知道如何做到这一点?
谢谢,
解决方法:
开箱即用,maven无法做到这一点,并且不建议使用变通方法(属性不应该在生命周期中改变).
虽然有几种解决方法,我最喜欢的是gmaven plugin,它可以让你embed Groovy code in the pom.
以下代码片段将属性’abc’设置为’bar’或’baz’,具体取决于属性’def’是否包含’foo’:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source><![CDATA[
pom.properties['abc']=
pom.properties['def'].contains('foo') ? 'bar' : 'baz';
]]></source>
</configuration>
</execution>
</executions>
</plugin>
顺便说一下,文档已经过时,插件版本现在为1.3,groupId已经更改.这是the current version.
内容总结
以上是互联网集市为您收集整理的java – 根据其他属性值在maven中定义属性全部内容,希望文章能够帮你解决java – 根据其他属性值在maven中定义属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。