2013-03-06 69 views
0

在Maven中,使用編譯器插件,我們可以做增加Maven的編譯任務

mvn compile 

並編譯該項目。我需要的是編譯該項目並做一些其他的事情。

例如,在ANT我可以這樣做:

public class Main extends Javac13 { 
    @Override 
    public boolean execute() throws BuildException { 
     System.out.println("Main::execute"); 
     attributes.log("Using modern compiler", Project.MSG_VERBOSE); 
     Commandline cmd = setupModernJavacCommand(); 

     try { 
      int result = com.sun.tools.javac.Main.compile(cmd.getArguments()); 
      return result == 0; 
     } catch (Exception ex) { 
      if (ex instanceof BuildException) { 
       throw (BuildException) ex; 
      } else { 
       throw new BuildException("Error starting modern compiler", ex, location); 
      } 
     } 
    } 

    @Override 
    public void setJavac(Javac javac) { 
     System.out.println("Main::setJavac " + javac); 
     super.setJavac(javac); 
    } 
} 

啓動它以這樣的方式

ant -Dbuild.compiler=com.moc.Main ... 

上面的類成爲了編譯器,我可以做我想做的事情用命令ANT給我的線。 另外,最棒的是我不需要觸摸build.xml文件。我只需要設置一個系統屬性。

在Maven中是否有這樣的事情?

回答

0

你可以看一看system-properties-maven-plugin我剛纔敲了一下。它允許你在你的pom.xml中定義系統屬性。看看USAGE文件。

該插件有兩個目標 - 一個用於設置屬性(set),另一個用於將它們還原爲原始方式(reset)。