从Mojo获取多模块maven项目的根目录
Obtain root directory of multi-module maven project from a Mojo
我正在开发maven插件,需要获取多模块工程的根目录
用mavenProject.getBuild().getDirectory()
我可以得到当前模块目录的路径,好的。
所以我想我会尝试获取 root MavenProject
,但是 getRootProject()
定义如下,getRootProject().getBuild().getDirectory()
returns "${project.basedir}"
(字面意思是字符串值...我不知道如何解决,即使我解决了它也会解决当前模块,这不是我想要的)。
@Parameter(defaultValue = "${project}", readonly = true)
private MavenProject mavenProject;
// ...
private MavenProject getRootProject() {
MavenProject project = mavenProject;
while (project.getParent() != null) {
project = project.getParent();
}
return project;
}
如何获取根模块的(解析和绝对)路径?
感谢 this answer 从不同的角度(不是从 Mojo)处理同一问题,我找到了解决方案:
将以下字段添加到我的 Mojo 中:
@Parameter(defaultValue = "${session}", readonly = true)
private MavenSession mavenSession;
然后这样使用:
mavenSession.getExecutionRootDirectory()
我正在开发maven插件,需要获取多模块工程的根目录
用mavenProject.getBuild().getDirectory()
我可以得到当前模块目录的路径,好的。
所以我想我会尝试获取 root MavenProject
,但是 getRootProject()
定义如下,getRootProject().getBuild().getDirectory()
returns "${project.basedir}"
(字面意思是字符串值...我不知道如何解决,即使我解决了它也会解决当前模块,这不是我想要的)。
@Parameter(defaultValue = "${project}", readonly = true)
private MavenProject mavenProject;
// ...
private MavenProject getRootProject() {
MavenProject project = mavenProject;
while (project.getParent() != null) {
project = project.getParent();
}
return project;
}
如何获取根模块的(解析和绝对)路径?
感谢 this answer 从不同的角度(不是从 Mojo)处理同一问题,我找到了解决方案:
将以下字段添加到我的 Mojo 中:
@Parameter(defaultValue = "${session}", readonly = true)
private MavenSession mavenSession;
然后这样使用:
mavenSession.getExecutionRootDirectory()