`
Gavin.Chen
  • 浏览: 328069 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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>

 

 

 附一自定义插件样例源码

 

 

分享到:
评论

相关推荐

    maven-site-plugin和 maven-scr-plugin同时使用时site plugin不能删除target中OSGI-INF\\serviceCo

    当maven-site-plugin和maven-scr-plugin同时使用时,可能遇到的问题是,site plugin试图清理target目录以准备生成新的站点文档,但因为maven-scr-plugin生成的服务元数据(通常位于target/OSGI-INF/serviceComposite...

    Gradle maven工件发布与maven、maven发布、android maven Gradle插件的演练

    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!) 文件列表:...

    tools-maven-plugin:Apache Maven插件工具集

    插件定义: &lt; plugin&gt; &lt; groupId&gt;io.yupiik.maven&lt;/ groupId&gt; &lt; artifactId&gt;yupiik-tools-maven-plugin&lt;/ artifactId&gt; ${yupiik-tools.version}&lt;/ version&gt;&lt;/ plugin&gt;目标PDF格式渲染PDF中的asciidoctor文件。...

    tableau-maven-plugin

    Tableau Maven插件将Tableau解析器集成到Maven中。用法pom.xml 该插件应添加到pom.xml的build插件中,如下所示: &lt; build&gt; &lt; plugins&gt; &lt; plugin&gt; &lt; groupId&gt;...-- Adds the custom goals defined by the plugin --&gt;

    maven插件及其使用方法

    - `maven-install-plugin`:将项目安装到本地Maven仓库。 - `maven-deploy-plugin`:将项目部署到远程仓库。 除此之外,社区还提供了大量的第三方插件,满足各种特定需求,如代码覆盖率报告、静态代码分析、数据库...

    Maven权威指南 很精典的学习教程,比ANT更好用

    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:教学标签

    【vdoc-maven-plugin 教学标签】\n\nvdoc-maven-plugin 是一个用于Java项目的Maven插件,它简化了文档生成的过程,特别是对于Java API文档的创建。这个插件是基于Javadoc的,但提供了更多的定制化选项和便利功能。在...

    maven 自定义插件小示例

    例如,对于上面的示例,你可以运行`mvn com.example:maven-plugin-client:custom-task`。 通过这种方式,你可以根据实际需求定制Maven的构建过程。在提供的压缩包`maven-plugin-client-test`中,可能包含了一个简单...

    custom-lifecycle.rar

    例如,创建一个名为 "custom-lifecycle-maven-plugin" 的插件,定义一个独有的 "my-phase" 阶段,并在 pom.xml 文件中配置这个插件。 2. **扩展点**:Maven 提供了扩展点机制,允许在生命周期的特定位置插入自定义...

    custom-plugin-demo:自定义插件

    该项目演示了如何使用 java 打包、maven 构建系统和运行时类加载构建基于插件的简单应用程序。 结构 这是一个多模块的maven项目 sdk : 定义插件接口 plugin-src : 包含演示插件源 plugin-app : 使用插件构建的示例...

    maven打包过程执行自定义插件包

    要在打包过程中执行自定义插件,我们需要编写一个Maven插件,这个插件可以是Java代码实现,遵循Maven Plugin API。在本文中提到的"easeyemavenplugin"可能就是一个这样的插件示例。创建插件后,我们需要将其配置到...

    mavenjar包

    在`pom.xml`文件中,你可以定义`&lt;build&gt;`标签内的`&lt;plugins&gt;`部分,使用`maven-jar-plugin`来指定如何打包项目。例如,你可以设置main类作为启动入口,或者创建包含源代码的jar包。 ```xml &lt;plugin&gt; &lt;groupId&gt;...

    Https安全请求验证集成Gradle

    CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build(); HttpGet request = new HttpGet("https://example.com"); HttpResponse response = httpClient.execute...

    apache-maven-3.6.0完整版

    插件通过在 `pom.xml` 中配置来使用,例如使用maven-javadoc-plugin生成API文档: ```xml &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-javadoc-plugin &lt;version&gt;3.1.1 &lt;id&gt;attach-...

    aempackagediff-maven-plugin:Maven插件可生成仅包含两次提交之间的更改的AEM软件包,从而可以构建diff软件包

    aempackagediff-maven-plugin Maven插件可生成仅包含两次提交之间的更改的AEM软件包,从而可以构建diff软件包##这个怎么运作? 执行后,插件将调用一个外部进程,该进程将生成两次指定提交之间的更改列表。 然后,...

    maven 安装jar的方法

    总结起来,通过创建一个简单的Maven项目,并在`pom.xml`中配置`maven-install-plugin`插件,我们可以方便地将自定义JAR文件安装到本地仓库,从而在其他Maven项目中进行引用。这是一个灵活且高效的方法,有助于管理...

    Sonar-Custom-Plugin:自定义声纳插件的示例。 在这种情况下,插件将解析.sql文件

    **Sonar-Custom-Plugin: 自定义声纳插件深入解析** 声纳(SonarQube)是一款强大的静态代码分析工具,它可以帮助开发者检测代码中的潜在缺陷、代码异味以及复杂度,以提升软件质量。而Sonar-Custom-Plugin则是针对...

    Failed to execute goal org...的解决办法

    关于解决“Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1”问题,首先需要了解Maven的构建生命周期,以及Maven的编译插件(maven-compiler-plugin)如何在编译过程中发挥作用。...

    apache-maven-3.6.3-bin,设置库地址

    Maven插件扩展了Maven的功能,如`maven-jar-plugin`用于创建JAR文件,`maven-compiler-plugin`负责编译源代码。通过在POM中配置插件,可以定制构建过程。 6. **Maven的坐标** Maven使用groupId、artifactId和...

Global site tag (gtag.js) - Google Analytics