Maven實戰之antrun插件


在 Maven實際使用過程中,有時候在對一些舊有的項目的做從Makefile和ant到Maven遷移時需要對一些步驟做特殊處理,比如說編譯JNI代 碼,雖然Maven有個native插件可以用,但需要將原有項目JNI的編譯步驟重寫,這在有些時候顯然不太適合,比如時間壓力比較大的情況下。其實這 種情況可以使用Maven的antrun插件來做,這樣做的好處就是可以重用原來寫好的Makefile,相對來說還是比較簡單也是最快的。具體信息可以 參考http://maven.apache.org/plugins/maven-antrun-plugin/。

Maven的antrun用起來也是非常簡單的,就是在代碼里嵌入類似以下代碼片段:

    ...
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="make ..."/>
                                <exec dir="src/main/c" executable="make" failonerror="true" />
                            </tasks>
                        </configuration>
                    </execution>
                    <execution>
                        <id>clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="make clean ..."/>
                                <exec dir="src/main/c" executable="make" failonerror="true">
                                    <arg line="clean"/>
                                </exec>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    ...

* 代碼中定義了兩個execution節點,分別執行原來Makefile中定義的make和make clean。這里可以將tasks節點定義成任意自己想要運行的ant任務;

* 在第一個execution節點下,把phase定義成package,goal定義成run,是為了使在運行"mvn package"的時候自動執行第一個execution節點下的ant任務;

* 在第二個execution節點下,把phase定義成clean,goal定義成run,是為了使在運行"mvn clean"的時候自動執行第二個execution節點下的ant任務;

轉自:http://blog.csdn.net/kongxx/article/details/6998965


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM