官方参考资料页面: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>
附一自定义插件样例源码
本文介绍如何使用MavenMojoArchetype创建简单的Maven插件项目,并详细解释了如何设置phase与goal,定义参数,以及如何在POM文件中配置并调用自定义插件。
1511

被折叠的 条评论
为什么被折叠?



