官方参考资料页面: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>
附一自定义插件样例源码
分享到:
相关推荐
当maven-site-plugin和maven-scr-plugin同时使用时,可能遇到的问题是,site plugin试图清理target目录以准备生成新的站点文档,但因为maven-scr-plugin生成的服务元数据(通常位于target/OSGI-INF/serviceComposite...
The project contains both of scripts and custom gradle plugin which are designed to make the publishing jobs much simpler and correct. Of course, both java & android project are supported!) 文件列表:...
插件定义: < plugin> < groupId>io.yupiik.maven</ groupId> < artifactId>yupiik-tools-maven-plugin</ artifactId> ${yupiik-tools.version}</ version></ plugin>目标PDF格式渲染PDF中的asciidoctor文件。...
Tableau Maven插件将Tableau解析器集成到Maven中。用法pom.xml 该插件应添加到pom.xml的build插件中,如下所示: < build> < plugins> < plugin> < groupId>...-- Adds the custom goals defined by the plugin -->
- `maven-install-plugin`:将项目安装到本地Maven仓库。 - `maven-deploy-plugin`:将项目部署到远程仓库。 除此之外,社区还提供了大量的第三方插件,满足各种特定需求,如代码覆盖率报告、静态代码分析、数据库...
Maven Plugin 10.2.4. EJB 10.2.5. WAR 10.2.6. EAR 10.2.7. 其它打包类型 10.3. 通用生命周期目标 10.3.1. Process Resources 10.3.2. Compile 10.3.3. Process Test Resources 10.3.4. Test Compile ...
【vdoc-maven-plugin 教学标签】\n\nvdoc-maven-plugin 是一个用于Java项目的Maven插件,它简化了文档生成的过程,特别是对于Java API文档的创建。这个插件是基于Javadoc的,但提供了更多的定制化选项和便利功能。在...
例如,对于上面的示例,你可以运行`mvn com.example:maven-plugin-client:custom-task`。 通过这种方式,你可以根据实际需求定制Maven的构建过程。在提供的压缩包`maven-plugin-client-test`中,可能包含了一个简单...
例如,创建一个名为 "custom-lifecycle-maven-plugin" 的插件,定义一个独有的 "my-phase" 阶段,并在 pom.xml 文件中配置这个插件。 2. **扩展点**:Maven 提供了扩展点机制,允许在生命周期的特定位置插入自定义...
该项目演示了如何使用 java 打包、maven 构建系统和运行时类加载构建基于插件的简单应用程序。 结构 这是一个多模块的maven项目 sdk : 定义插件接口 plugin-src : 包含演示插件源 plugin-app : 使用插件构建的示例...
要在打包过程中执行自定义插件,我们需要编写一个Maven插件,这个插件可以是Java代码实现,遵循Maven Plugin API。在本文中提到的"easeyemavenplugin"可能就是一个这样的插件示例。创建插件后,我们需要将其配置到...
在`pom.xml`文件中,你可以定义`<build>`标签内的`<plugins>`部分,使用`maven-jar-plugin`来指定如何打包项目。例如,你可以设置main类作为启动入口,或者创建包含源代码的jar包。 ```xml <plugin> <groupId>...
CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build(); HttpGet request = new HttpGet("https://example.com"); HttpResponse response = httpClient.execute...
插件通过在 `pom.xml` 中配置来使用,例如使用maven-javadoc-plugin生成API文档: ```xml <plugin> <groupId>org.apache.maven.plugins <artifactId>maven-javadoc-plugin <version>3.1.1 <id>attach-...
aempackagediff-maven-plugin Maven插件可生成仅包含两次提交之间的更改的AEM软件包,从而可以构建diff软件包##这个怎么运作? 执行后,插件将调用一个外部进程,该进程将生成两次指定提交之间的更改列表。 然后,...
总结起来,通过创建一个简单的Maven项目,并在`pom.xml`中配置`maven-install-plugin`插件,我们可以方便地将自定义JAR文件安装到本地仓库,从而在其他Maven项目中进行引用。这是一个灵活且高效的方法,有助于管理...
**Sonar-Custom-Plugin: 自定义声纳插件深入解析** 声纳(SonarQube)是一款强大的静态代码分析工具,它可以帮助开发者检测代码中的潜在缺陷、代码异味以及复杂度,以提升软件质量。而Sonar-Custom-Plugin则是针对...
关于解决“Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1”问题,首先需要了解Maven的构建生命周期,以及Maven的编译插件(maven-compiler-plugin)如何在编译过程中发挥作用。...
Maven插件扩展了Maven的功能,如`maven-jar-plugin`用于创建JAR文件,`maven-compiler-plugin`负责编译源代码。通过在POM中配置插件,可以定制构建过程。 6. **Maven的坐标** Maven使用groupId、artifactId和...