我正在使用:mvn -f release.xml clean deploy
运行Maven(2)发布版本
并希望将当前运行的pom文件名(release.xml
)放入属性或mojo中。
有可能吗?
答案 0 :(得分:1)
你可以使用该属性
${env.MAVEN_CMD_LINE_ARGS}
在您的pom或过滤后的资源中,它将扩展为类似
的内容 clean install -Paxis -Dmaven.test.skip -f mypom.xml -pl util
但是,如果您只想要mypom.xml部分,那么您将不得不进行一些脚本编写,这在maven中不支持开箱即用。常见解决方案是maven antrun plugin或gmaven (groovy) plugin。这是gmaven中的一种方法:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
System.out.println(
System
.getenv("MAVEN_CMD_LINE_ARGS")
.replaceFirst( /.*\-f\s+(\S+).*/ , 'POM File: $1')
);
</source>
</configuration>
</execution>
</executions>
</plugin>
编辑:如您在属性中所需,可以使用System.setProperty或直接写入project.properties