Custom Maven Plugin

官方参考资料页面:http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

 

1. 用Maven Mojo Archetype生成一个简单的Maven Plugin工程,用下面的命令行

mvn archetype:create \
 -DgroupId=sample.plugin \
 -DartifactId=maven-hello-plugin \
 -DarchetypeGroupId=org.apache.maven.archetypes \
 -DarchetypeArtifactId=maven-archetype-mojo

 

2. 在生成的Java代码的前面注释部份,修改phase与goal

 

/**
 * 
 *
 * @goal generate //在此处修改goal 
 * 
 * @phase package //在此处修改phase 
 */

 

通常用得比较多的是Phase是Default Lifecycle Bindings - Packaging ejb / ejb3 / jar / par / rar / war里的一些phases,如下

 

process-resources
compile
process-test-resources
test-compile
test
package 
install 
deploy

 

 

3. 接着就是准备所需的参数,这些参数将在使用这个Maven plugin时由pom配置获得

/**
 * Location of the file.
 * @parameter expression="${project.build.directory}"
 * @required
 */ 
 private File outputDirectory;

 


 参数的注入是由普通的注释来标识,名字可以与字段名字一致,也可以设定experssion给变量取一个别名,以便于在pom配置和command line中使用它来传值,也可以通过default-value来指定默认值,还有就是指定@required来强制用户设定值

 

4. 然后就是插件实现部份,利于之前拿到的parameter值,进行操作

 

5. 调用plugin,下面是调用的样例

	<profile>
      <id>appengine</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.javaui.maven.plugin</groupId>
            <artifactId>google-app-engine-maven-plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
            <configuration>
              <outputDirectory>${project.build.directory}/appengine</outputDirectory>
              <staticFileDirectory>${project.build.directory}/${project.build.finalName}/${gwt.xml.path}/</staticFileDirectory>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

 

 

 附一自定义插件样例源码

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值