获取maven pom文件的名称

时间:2010-06-02 13:09:30

标签: maven-2 properties

我正在使用:mvn -f release.xml clean deploy运行Maven(2)发布版本 并希望将当前运行的pom文件名(release.xml)放入属性或mojo中。

有可能吗?

1 个答案:

答案 0 :(得分:1)

你可以使用该属性

${env.MAVEN_CMD_LINE_ARGS}

在您的pom或过滤后的资源中,它将扩展为类似

的内容

clean install -Paxis -Dmaven.test.skip -f mypom.xml -pl util

但是,如果您只想要mypom.xml部分,那么您将不得不进行一些脚本编写,这在maven中不支持开箱即用。常见解决方案是maven antrun plugingmaven (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