创建在默认生命周期中执行的插件时,很容易获得对项目及其资源的引用,但是在创建在站点生命周期中执行的插件时,我得到的是null而不是MavenProject对象。
有任何提示,技巧或建议吗?
最佳答案
事实证明,我遇到的问题与我将Project参数的声明传递到Mojo中有关。由于在Maven构建中只有一个MavenProject实例,因此您不能为参数指定表达式(并且实际上没有Java字符串可以强制转换为MavenProject对象),默认值必须为“ $ {project }”。
因此,要在任何阶段从Maven插件Mojo中访问MavenProject,请使用以下参数声明:
/**
* Project instance, used to add new source directory to the build.
*
* @parameter expression="export.project" default-value="${project}"
* @required
* @readonly
*/
private MavenProject project;