Maven:property标记中pom.xml中的If语句
如果设置了环境变量,我想设置一个属性。我在谷歌上搜索了很多,发现的都是类似于下面代码的东西,但我不断发现错误: [FATAL]不可解析的POM Y:\Maven\parent POM\POM.xml:文本后面必须紧跟END_标记,而不是START_标记(位置:START_标记 甚至…不动产“\r\nMaven:property标记中pom.xml中的If语句,xml,maven,if-statement,pom.xml,sentence,Xml,Maven,If Statement,Pom.xml,Sentence,如果设置了环境变量,我想设置一个属性。我在谷歌上搜索了很多,发现的都是类似于下面代码的东西,但我不断发现错误: [FATAL]不可解析的POM Y:\Maven\parent POM\POM.xml:文本后面必须紧跟END_标记,而不是START_标记(位置:START_标记 甚至…不动产“\r\n classpathref=“maven.plugin.classpath”/>…@29:55)@第29行,第29列 55 这就是我正在尝试的代码,它在pom.xml中,我运行了这个命令- mvn—部
classpathref=“maven.plugin.classpath”/>…@29:55)@第29行,第29列 55 这就是我正在尝试的代码,它在pom.xml中,我运行了这个命令- mvn—部署错误 当然,如果您对如何根据环境变量content在pom.xml中设置属性有其他建议,我很乐意得到任何其他解决方案 谢谢, 伊莱
.....
${env.WAS60_HOME}
${was60.home}/java/bin/javac
${env.WAS85_HOME}
${was85.home}/java/bin/javac
was.base.v60
....
${was60.home}/java/jre/lib/xml.jar
.....
was.base.v85
....
${was85.home}/java/jre/lib/xml.jar
.....
属性标签内任务的使用已连接,请改用maven antrun插件。您可以使用
maven antrun插件
1.3
ftp
包裹
跑
真的
抗辩人
抗辩人
20020829
更好的方法是使用
这种方法很容易在Jenkins中维护,使用它可以使用GUI编辑我为每个项目使用的各种设置文件
更新2:
以下是我如何设置构建的示例。POM包含一个带有默认属性值的部分。我设置了一个或多个pfiles以覆盖这些值:
<project>
<properties>
<my.property1>hello</my.property1>
<my.property2>world</my.property2>
..
</properties>
..
<build>
<profiles>
<profile>
<id>build_in_spanish</id>
<properties>
<my.property1>hola</my.property1>
<my.property2>mundo</my.property2>
..
</properties>
</profile>
<profile>
<id>build_in_irish</id>
<properties>
<my.property1>dia dhuit</my.property1>
<my.property2>an domhain</my.property2>
..
</properties>
</profile>
<profiles>
</build>
</project>
注:
- 配置文件可以在POM中,也可以在单独的设置文件中。后一种方法提供了最大的灵活性
- 可以显式启用配置文件(使用“-P”命令行选项,或尝试发现它所在的环境。这是一种设计选择)
Elyahu尝试将\>替换为行中的/>
<equals arg1="${env.WAS60_HOME}" arg2=""\>
为什么在使用${env.WAS####u HOME}时我需要“激活”直接。另一个问题,如果ENV变量未设置或为空,那该怎么办?@Elyahu完全取决于你。我更新了我的答案,详细介绍了如何使用配置文件。嗨,Mark,那么你如何处理变量未设置或未设置的情况空的?你能给我举个例子吗?我在你发送的链接中找不到它。这是Maven的一个大问题:你必须用Maven的方式做事,这总是很不直观,以至于在两个小时的努力寻找和应用相关文档后,我放弃了。
<profiles>
<profile>
<id>was.base.v60</id>
<activation>
<property>
<name>env.WAS60_HOME</name>
</property>
</activation>
<dependencies>
<dependency>
....
<systemPath>${env.WAS60_HOME}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
<profile>
<id>was.base.v85</id>
<activation>
<property>
<name>env.WAS85_HOME</name>
</property>
</activation>
<dependencies>
<dependency>
....
<systemPath>${env.WAS85_HOME}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
</profiles>
mvn -s $PROJECT_SETTINGS -P myProfile ....
<project>
<properties>
<my.property1>hello</my.property1>
<my.property2>world</my.property2>
..
</properties>
..
<build>
<profiles>
<profile>
<id>build_in_spanish</id>
<properties>
<my.property1>hola</my.property1>
<my.property2>mundo</my.property2>
..
</properties>
</profile>
<profile>
<id>build_in_irish</id>
<properties>
<my.property1>dia dhuit</my.property1>
<my.property2>an domhain</my.property2>
..
</properties>
</profile>
<profiles>
</build>
</project>
mvn -P build_in_spanish ...
<equals arg1="${env.WAS60_HOME}" arg2=""\>