zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    微信公众平台开发(46)在线电影/移动影院
    微信公众平台开发(45)食物营养及热量查询
    微信公众平台开发(44)历史上的今天
    微信公众平台开发(43)火车时刻查询
    企业移动互联网O2O微信支付流程图
    淘宝天猫店铺微信公众平台建设指南
    iOS MachO
    iOS mmap
    iOS isEqual
    iOS Hook
  • 原文地址:https://www.cnblogs.com/jerrylz/p/5547611.html
Copyright © 2011-2022 走看看