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>

 

 

 附一自定义插件样例源码

 

 

你可能感兴趣的:(apache,maven,Google,ejb,gwt)