访问项目信息

该插件可以访问有关正在构建的当前 Maven 项目的信息。

@Mojo(name = "project")
public final class ProjectNameMojo extends AbstractMojo {

    @Parameter(defaultValue = "${project}", readonly = true, required = true)
    private MavenProject project;

    public void execute() throws MojoExecutionException, MojoFailureException {
        getLog().info("Hello, this is " + project.getName());
    }
}

上面的示例将在控制台中打印运行它的 Maven 项目的名称,该项目在其 POM 的 <project>/<name> 元素中指定。

插件中使用的 MavenProject 类需要 maven-core 与插件的 POM 中的(默认)compile 范围的依赖关系:

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

此外,使用注释需要在插件的 POM 中具有以下依赖性:

<dependency>
  <groupId>org.apache.maven.plugin-tools</groupId>
  <artifactId>maven-plugin-annotations</artifactId>
  <version>3.5</version>
  <scope>provided</scope> <!-- annotations are needed only to build the plugin -->
</dependency>