我试图在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>