`

Maven插件开发入门

 
阅读更多
    一直想学习下maven插件,可是没有中文文档。只好去官网上找了。居然看到一个插件开发指南。想我英语就停留在初中水品居然看懂了。

    闲话说完。用Maven开发一个插件我觉得分以下几步:
    1、添加maven-plugin-api依赖。
    2、写个类来实现AbstractMojo。
    3、编译安装自己的插件。
    4、测试写好的插件。

    一、新建个maven项目,添加依赖。
   
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.0.3</version>
    </dependency>
    


    二、实现AbstractMojo抽象类
   
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;

/**
 * Says "Hi" to the user.
 * @goal sayhi
 */
public class GreetingMojo extends AbstractMojo
{
    public void execute() throws MojoExecutionException
    {
        getLog().info("Hello, world.");
    }
}
    


   三、在命令行执行:mvn clean instal。则插件编译打包到本地仓库中。

   四、测试完成的插件。
   
   1、在插件本项目或者其他maven项目中添加写好的插件:
  
<build>
...
<plugin>
    <groupId>com.test</groupId>
    <artifactId>plugin-hello</artifactId>
    <version>1.0</version>
</plugin>
...
</build>

    2、在命令行运行。
mvn groupID:artifactID:version:goal 
例如:mvn com.test:plugin-hello:1.0:sayhi

  
  总体的调用感觉就和直接运行java Test这样调用Test类的main方法一样。实现原理可能是通过groupID:artifactID:version这三个坐标找到具体的插件包,然后扫描注解为@goal的,如果找到匹配的话就自动运行execute方法。(没去看源码,只是猜测的实现原理)


分享到:
评论

相关推荐

    maven + springmvc 入门实例

    2. **构建工具**: Maven支持多种构建插件,如Jetty插件可以实现快速的本地调试,War插件用于打包Web应用。 3. **持续集成**: Maven与持续集成工具如Jenkins、GitLab CI/CD等配合良好,可以自动化构建、测试和部署...

    maven+springside 开发入门

    【标题】"maven+springside 开发入门"涉及的主要知识点是 Maven 和 Springside 这两个关键的Java开发工具。Maven 是一个项目管理和综合工具,它可以帮助开发者构建、管理和部署Java项目,而Springside则是一个基于...

    maven-javaweb入门

    ** Maven JavaWeb 入门详解 ** Maven 是一个强大的项目管理和依赖管理工具,尤其在JavaWeb开发中,它能够帮助开发者有效地构建、管理和部署项目。本教程将引导你了解如何使用Maven来构建JavaWeb应用程序,以"web...

    JEECG-P3-Maven版本手把手入门-Eclipse

    - 插件安装:Eclipse Mars.2以及更高版本已内置Maven插件,此步可跳过;MyEclipse用户可在线安装最新版本的Maven插件。 - 配置Eclipse:在Eclipse中设置Maven的安装目录并更新Maven的User Settings。 3. 导入和...

    maven项目构建入门书籍

    - Maven插件可以通过POM进行配置,添加自定义的参数和目标。 ### Maven与IDE集成 - Maven可以无缝集成到主流的Java IDE,如Eclipse、IntelliJ IDEA,方便进行项目构建和管理。 通过《Maven权威指南》这本书,读者...

    Maven3应用入门session

    "Maven3应用入门session.pptx"文件可能包含了关于Maven3的更多细节,如POM的配置示例、生命周期的详细解释、插件的使用方法以及实际项目中的最佳实践。通过阅读这个PPT,你可以深入理解Maven3的工作原理,并学会如何...

    JEECG3.4.3-MAVEN版本手把手入门-eclipse.docx

    本文将详细介绍 JEECG3.4.3-MAVEN 版本的入门指南,使用 Eclipse 作为开发工具,通过 Maven 进行项目构建和管理。 一、Maven 环境搭建 Maven 是一个基于项目对象模型(POM)的项目管理工具,能够帮助开发者更好地...

    Maven实战- 入门

    此外,为了在集成开发环境(IDE)中更加便捷地使用Maven,书中还介绍了如何安装m2eclipse和NetBeans Maven插件。 在Maven的使用入门章节,学习者将了解到如何编写项目对象模型(POM)文件,这是Maven项目的核心配置...

    Maven学习 初学入门

    #### Maven插件与扩展 Maven的灵活性来源于其插件系统,插件负责执行特定的构建任务。Maven内置了一些常用的插件,如编译插件、测试插件、打包插件等。用户还可以通过配置`&lt;build&gt;&lt;plugins&gt;`来添加或定制插件,以...

    Maven2.09+ 入门指南

    ** Maven 2.0.9 入门指南 ** Maven 是一个强大的项目管理工具,主要应用于Java项目构建、依赖管理和项目信息管理。Maven 2.0.9 是该工具的一个版本,虽然现在已经有了更高级的版本,但对于初学者来说,它仍然是一个...

    maven2快速入门教程

    ** Maven2 快速入门教程 ** Maven是Apache软件基金会开发的一款项目管理和集成工具,主要应用于Java项目。Maven2是Maven的第一个稳定版本,它极大地简化了项目的构建、依赖管理和文档生成过程。本教程将带你一步步...

    IntelliJ IDEA 插件开发入门指南.zip

    项目通常基于Maven或Gradle构建,利用IntelliJ IDEA提供的插件开发模板来创建新项目。 2. 插件配置文件:每个IntelliJ IDEA插件都有一个`plugin.xml`文件,它是插件的核心配置文件,用于声明插件的组件、依赖、菜单...

    maven入门到精通

    maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个...

    eclipse-smart自带maven插件的eclipse安装包

    而本案例中的Eclipse-Smart自带Maven插件的安装包则省去了这一步骤,用户可以直接使用Eclipse进行Maven项目的开发,大大提高了开发效率。 #### 三、Eclipse-Smart自带Maven插件的安装包特点 - **自动配置**:该...

    超详细Maven快速入门到精通.txt打包整理.zip

    4. **自定义插件**:开发自己的插件以扩展Maven的功能。 5. **依赖范围**:控制依赖的生效范围,如编译时、测试时、运行时等。 【总结】 Maven是Java开发中的重要工具,它简化了项目的构建和管理,通过标准化的POM...

    Maven3应用入门讲座

    Maven插件可以执行各种任务,如Javadoc生成、代码覆盖率报告、自动化部署到服务器等,极大地简化了开发流程。 **内部仓库使用** 企业内部可以设置私有的Maven仓库,存储内部开发的库,确保依赖的安全性和可控性。 ...

    maven 入门demo

    ** Maven 入门指南 ** Maven 是一个强大的项目管理和构建工具,广泛应用于...通过这个入门级的 "maven 入门demo",你已经掌握了 Maven 的基础,接下来可以深入学习更多高级特性和最佳实践,提升你的 Java 开发效率。

    Maven实战——入门篇

    ### Maven实战——入门篇 #### Maven简介与概念 Maven是一种强大的、跨平台的项目管理工具,主要用于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目还是大型的企业级应用,Maven都能...

Global site tag (gtag.js) - Google Analytics