2010-06-02 137 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