如何在Mojo.execute()中获取${basedir}值(或其他属性)



我试图在Mojo中获得${basedir}的值。我想我可以把它看作一个普通的系统属性,但是

System.getProperty("basedir") 

返回null

public void execute() throws MojoExecutionException, MojoFailureException {
    String baseDir = ???
}

这是通过注入MavenProject并调用getBaseDir()方法来完成的,如下所示:

public class MyMojo extends AbstractMojo {
    @Parameter(defaultValue = "${project}", readonly = true, required = true)
    private MavenProject project;
    public void execute() throws MojoExecutionException, MojoFailureException {
        String baseDir = project.getBaseDir();
    }
}

@Parameter用于注入值${project},该值解析为从Maven会话构建的当前项目。

使用注解需要对Maven插件有以下依赖:

<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>

相关内容

  • 没有找到相关文章

最新更新