Rob*_*452 1 java pom.xml maven
我有一个我在文档中提到的maven属性问题.从命令行我将输入属性"from.command".此属性将始终存在.
mvn deploy -Dfrom.command=COMMANDVALUE
Run Code Online (Sandbox Code Playgroud)
在pom.xml中我将指定另一个属性:
<properties>
<from.pom>POMVALUE</from.pom>
</properties>
Run Code Online (Sandbox Code Playgroud)
此属性有时会在那里,有时则会丢失.
我想要一个名为used.value的第三个属性
我想将used.value设置为"from.pom"的值,如果该属性存在,否则应将其设置为"from.command"的值
这需要因为我需要从另一个脚本运行maven构建而我不希望脚本必须检查所有pom文件.
这可能吗?
你可以使用build-helper-maven-plugin:bsh-propertymojo.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>bsh-property</id>
<goals>
<goal>bsh-property</goal>
</goals>
<configuration>
<properties>
<property>used.value</property>
</properties>
<source>
used.value = project.getProperties().getProperty("from.pom", session.getUserProperties().getProperty("from.command"));
</source>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
此目标可以编写BeanShell脚本.它自动将变量定义project为实际的Maven项目和session执行的Maven会话.
上面的脚本"from.pom"从Maven项目的属性获取属性,默认为"from.command"命令行上设置的属性.它将它设置为used.value变量,然后在执行脚本后由插件将其导出为Maven属性.从Maven会话中检索命令行属性getUserProperties():
用户可以自行决定用户属性,例如通过
-Dkey=value命令行上的参数.
此目标自动绑定到validate阶段,这是在默认生命周期中运行的第一个阶段,因此您将能够${used.value}在构建的其余部分中用作属性.
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |