Maven:如果属性标签中的pom.xml中的sentense [英] Maven: If sentense in pom.xml in the property tag
问题描述
如果设置了环境变量,我想设置属性。我在google上搜索了很多内容,我发现的内容与下面的代码类似,但我一直收到错误:
I'd like to set a property if an environment variable is set. I googled a lot on it and all I found is something similar to the code below, but I keep getting the error:
[致命]不可解析的POM Y:\ Maven \ parent-pom \ pom.xml:TEXT必须紧跟END_TAG,而不是START_TAG(位置:START_TAG
s een ... roperties \\\\ n
classpathref =maven.plugin.classpath/> ... @ 29:55)@第29行,第25列
[FATAL] Non-parseable POM Y:\Maven\parent-pom\pom.xml: TEXT must be immediately followed by END_TAG and not START_TAG (position: START_TAG s een ...roperties"\r\n
classpathref="maven.plugin.classpath" />... @29:55) @ line 29, column 55
这是我正在尝试的代码,它在pom.xml中,我运行命令 -
That's the code I'm trying, its inside a pom.xml and I ran the command -
mvn --errors deploy
当然,我很乐意得到任何其他解决方案,如果你有关于如何根据环境变量内容在pom.xml中设置属性的其他建议。
Of course, I'll be happy to get any other solution, if you have other suggestion on how to set a property in pom.xml depending on an environment variable content.
谢谢,
Eli
Thanks, Eli
<distributionManagement>
.....
</distributionManagement>
<properties>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties"
classpathref="maven.plugin.classpath" />
<if>
<condition>
<equals arg1="${env.WAS60_HOME}" arg2=""\>
</condition>
<then>
<was60.home>${env.WAS60_HOME}</was60.home>
<javac>${was60.home}/java/bin/javac</javac>
</then>
</if>
<if>
<condition>
<equals arg1="${env.WAS85_HOME}" arg2=""\>
</condition>
<then>
<was85.home>${env.WAS85_HOME}</was60.home>
<javac>${was85.home}/java/bin/javac</javac>
</then>
</if>
</tasks>
</properties>
<profiles>
<profile>
<id>was.base.v60</id>
<dependencies>
<dependency>
....
<systemPath>${was60.home}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
<profile>
<id>was.base.v85</id>
<dependencies>
<dependency>
....
<systemPath>${was85.home}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
</profiles>
推荐答案
显然没有办法做正确的IF- Maven中的那句话。我发现至少没有。
Apparently there is no way to do a proper IF-THEN-ELSE sentence in Maven. At least none that I found.
我发现最接近的是使用激活标签。如果满足条件,它将激活配置文件。
The closest thing I found was using the "activation" tag. which will activate the profile if the condition in it is met.
Maven 2.0.X中的多个条件存在一些错误,不确定它现在的状态是什么 -
There is some bug on multiple conditions in Maven 2.0.X, not sure what's the status of it now -
http://jira.codehaus .org / browse / MNG-4565
所以,这里的问题回答了代码示例 -
So, a code example is answered on the question here -
Maven 2:运行maven-replacer-带有条件替换值的插件?
但是如果你想做一些像<<如果......那么......其他>>你要打你的头撞墙。还有其他方法,当然我认为它是有目的的,所以你必须遵循Maven方式。
But if you want to do something like << IF ... Then ... Else >> You're going to hit you head on a wall doing it. There are other ways, of course and I assume it is done in purpose, so you'll have to follow Maven way.
感谢所有试图帮助$ b的人$ b Elyahu
Thanks to all that tried to help Elyahu
这篇关于Maven:如果属性标签中的pom.xml中的sentense的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!