2010-06-02 140 views
1

我正在运行Maven(2)发布版本,其中包含:mvn -f release.xml clean deploy 并希望将当前运行的pom文件名(release.xml)获取到属性或mojo中。获取maven pom文件的名称

可能吗?

回答

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