美文网首页
Maven插件开发的一些问题总结

Maven插件开发的一些问题总结

作者: 换个名字_b5dd | 来源:发表于2021-07-02 18:52 被阅读0次

之前在开发一个Maven插件(生成接口文档)的开发中,遇到Maven插件开发相关的问题,所以在这整理一下,希望能帮到遇到同样问题的你们。
我开发的插件说明文档:查看地址

1 创建maven plugin项目:

推荐一个图文教程:https://blog.csdn.net/u012620150/article/details/78652624
官网指导教程:http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

2 开发相关

2.1 注入MavenProject,使用运行pom中的信息

2.1.1 依赖pom引入:

 <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-project</artifactId>
      <version>2.0.6</version>
    </dependency>

2.1.2 在你的XxxxMojo声明属性

/**
     * @parameter default-value="${project}"
     * @required
     * @readonly
     */
    private MavenProject project;

2.1.3 MavenProject就可以获取使用该插件的pom的所有信息了。
可以在idea或其他编辑器中,右键你的pom.xml > maven > Show Effective POM。在生成的文件中查找你想要的属性。MavenProject中的层级结构和pom.xml中的基本一致。
举几个例子吧:

  • mavenProject.getGroupId() : 获取pom的<groupId>属性
  • mavenProject.getArtifactId() : 获取pom的<artifactId>属性
  • mavenProject.getVersion() : 获取pom的<version>属性

2.2 注入MavenSession,读取pom->dependences中dependence的pom信息

2.2.1 依赖pom引入:

 <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>3.0</version>
    </dependency>

2.2.2 在你的XxxxMojo声明属性
注入MavenSession:

 /**
     * @parameter default-value="${session}"
     * @required
     * @readonly
     */
    private MavenSession session;

注入ProjectBuilder:

 /**
     * @component
     */
    private ProjectBuilder projectBuilder;

网上百度到的是使用@Component注解注入的,我没生效,试了下javadoc注解的方式,竟然成功了。
2.2.3 实现代码
获取pom文件中<dependences>下的<dependence>的对应的MavenProject对象。

ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
# 遍历依赖jar,获取对应的MavenProject对象
for (Artifact dependencyArtifact : (Set<Artifact>)project.getDependencyArtifacts()) {
    buildingRequest.setProject(null);
    MavenProject dependencyProject = projectBuilder.build(artifact, buildingRequest).getProject();               
 }

project就是2.1中执行该插件的pom对应的MavenProject

3. 之后还会在研究一些maven plugin开发相关的东西,之后再补充

参考链接

相关文章

  • Maven插件开发的一些问题总结

    之前在开发一个Maven插件(生成接口文档)的开发中,遇到Maven插件开发相关的问题,所以在这整理一下,希望能帮...

  • 聊聊如何自定义实现maven插件

    前言 在日常的maven项目开发中,我们自己开发maven插件的机会是比较少,因为市面上的maven插件基本上就可...

  • Maven

    maven eclipse 中创建maven项目需要M2Eclipse插件。 maven介绍 开发中遇到的问题: ...

  • 如何调试Maven源码

    在开发maven项目时,常常想了解maven的插件做了哪些工作,这时候就需要用到调试maven插件源码 准备工作 ...

  • Maven插件开发

    Maven作为一个优秀的项目管理工具,其插件机制为其功能扩展提供了非常大的便利性。Maven本身提供了很多的插件。...

  • maven插件开发

    最近接到了一个开发maven插件的需求,就学习了一下,做一下总结,也分享给大家,让大家少百度一点资料,多学习一点知...

  • Maven插件的开发

    maven是目前主流公司开发使用的构建工具,相比于ant、makefile,更加适合管理大型项目代码。当然这不是说...

  • maven插件的开发

    如果你想要了解某个事物,你必须要成为其中的一员。想要理解maven插件,我们就尝试来开发一个maven插件 官方文...

  • Maven 项目打包需要注意到的那点事儿

    1. 关于 Maven 打 war 包 《使用 Eclipse 的 Maven 2 插件开发一个 JEE 项目》详...

  • Eclipse使用maven创建Java Web项目完整示例

    项目开发环境 Eclipse已经安装插件maven 1.创建Maven web项目 1.1 新建meven项目,可...

网友评论

      本文标题:Maven插件开发的一些问题总结

      本文链接:https://www.haomeiwen.com/subject/cxkyultx.html