当前位置: 首页 > 面试题库 >

Java Maven MOJO-从项目POM获取信息

乜元魁
2023-03-14
问题内容

我正在开发一个Maven插件。我似乎很难弄清楚,从执行MOJO的项目中获取POM信息的好方法是什么?

例如,如果我在另一个Maven项目中执行我的mojo,我想获取项目名称或其他一些参数。

还有一件事,在AbstractMojo.java类中有一个上下文MAP,有私有Map
pluginContext,如果我错了,有人可以纠正我,但这应该用于在mojos之间传递信息吗?


问题答案:

您可以使用如下声明的字段将当前的maven项目注入到mojo中:

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

然后,只需调用即可获得项目名称project.getName()。要使用此API,您需要将maven-project工件添加为依赖项:

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


 类似资料:
  • 问题内容: 在处理POM之后,Jenkins构建有什么方法可以知道项目的Maven版本号吗? 我有一些项目由Maven控制版本控制,在构建后的工作中,我们想创建一个Debian软件包并调用一些shell脚本。我需要的是Maven以前可以用作Jenkins环境变量的版本号,因此我可以将其传递给构建后操作。 需要明确的是,我 没有 需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven

  • 基本信息 Path: /api/project/get Method: GET 接口描述: 请求参数 Query 参数名称 是否必须 示例 备注 token 是 项目token

  • 执行 gradle projects 命令会为你列出子项目名称列表. 例 11.7. 收集项目信息 gradle -q projects 命令的输出结果 > gradle -q projects ------------------------------------------------------------ Root project ----------------------------

  • 执行 gradle properties 可以获取项目所有属性列表. 如下例: 例 11.16. 属性信息 gradle -q api:properties 的输出结果 > gradle -q api:properties ------------------------------------------------------------ Project :api - The shared A

  • 问题内容: 是否有任何IDE(或与此相关的任何其他工具)都能够基于现有项目生成POM? 我最终按照Peter和Sal的建议,使用Maven原型生成了POM,然后将现有资源移入了。感谢您的帮助。 问题答案: 您可以在IntelliJ中执行此操作,但是它生成的POM可能比手工编写要复杂得多。如果您的项目当前在JBuilder或Eclipse中,则可以首先导入它。 相反,我建议您在POM中描述您的项目,

  • 问题内容: 当我遇到这个问题在运行时获取Maven工件版本时,我一直在寻找如何从maven pom或清单中获取应用程序名称(工件ID)和版本。 当我打包项目时,上面的内容对我有用,但是当我尝试使用eclipse运行程序时,似乎什么也没用。我在构建时尝试使用.properties方法,因为我认为这与包无关,但仍然没有得到结果。如果有人对这个问题有想法或解决方案,将不胜感激。 我的最后一次尝试是在下面