Jör*_*ann 35
您可以使用如下所示的字段将当前的maven项目注入到mojo中:
/**
* @parameter default-value="${project}"
* @required
* @readonly
*/
MavenProject project;
Run Code Online (Sandbox Code Playgroud)
然后只需调用即可获得项目名称project.getName().要使用此API,您需要将maven-project工件添加为依赖项:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Jes*_*ick 21
@Component
private MavenProject project;
Run Code Online (Sandbox Code Playgroud)
如果使用new maven-plugin-annotations,这也是新的mojos的默认设置,也可以(更简洁和直观)工作maven-archetype-plugin.
编辑(感谢@bmargulies):尽管@Component3.2版的Javadoc建议使用它MavenProject,但显然已弃用,建议从3.3开始删除; 该建议成语的maven-plugin-tools-annotations(如3.3)是这样的(似乎都工作):
@Parameter(defaultValue="${project}", readonly=true, required=true)
private MavenProject project;
Run Code Online (Sandbox Code Playgroud)
Par*_*udy 11
首选语法是:
@Parameter(defaultValue = "${project}", required = true, readonly = true)
MavenProject project;
Run Code Online (Sandbox Code Playgroud)
您必须为maven-project插件的pom 添加依赖项:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(感谢已经提供此信息的其他人.这个答案将它们组合在一个地方.)