Java 将mojo生成的代码动态添加到源路径

Java 将mojo生成的代码动态添加到源路径,java,maven,pom.xml,mojo,generated-code,Java,Maven,Pom.xml,Mojo,Generated Code,我编写了一个mojo,它生成代码并将其粘贴在{root}/target/generated sources/foo下。当我执行: mvn clean install 我得到的错误表明生成的源代码没有包含在构建路径中(生成的文件在那里,但在编译阶段没有被提取)。我从中了解到,我需要动态添加{root}/target/generated sources/foo作为POM的源目录。问题是,我还没有找到任何关于如何做到这一点的信息 作为备份计划,我打算使用Build Helper Maven插件,但如

我编写了一个mojo,它生成代码并将其粘贴在{root}/target/generated sources/foo下。当我执行:

mvn clean install
我得到的错误表明生成的源代码没有包含在构建路径中(生成的文件在那里,但在编译阶段没有被提取)。我从中了解到,我需要动态添加{root}/target/generated sources/foo作为POM的源目录。问题是,我还没有找到任何关于如何做到这一点的信息


作为备份计划,我打算使用Build Helper Maven插件,但如果可能的话,我希望能在我的mojo中自动执行此操作。

我更愿意将此添加到我的mojo中:

/**
  * The current project representation.
  * @parameter expression="${project}"
  * @required
  * @readonly
  */
 private MavenProject project;

/**
 * Directory wherein generated source will be put; main, test, site, ... will be added implictly.
 * @parameter expression="${outputDir}" default-value="${project.build.directory}/src-generated"
 * @required
 */
private File outputDir;
显然,您可以更改
默认值
,以匹配您自己的模式

然后在
execute()
方法中:

if (!settings.isInteractiveMode()) {
    LOG.info("Adding " + outputDir.getAbsolutePath() + " to compile source root");
}
project.addCompileSourceRoot(outputDir.getAbsolutePath());

谢谢我已经有了第一位(即输出位置属性)。这是我尝试工作的第二点——添加编译源根<代码>项目对我来说是未定义的。看看它是不是一个maven版本的东西,或者别的什么。但是如果你有任何想法,请告诉我。@KentBoogaart添加了
MavenProperty
属性,该属性将自动拾取并准备使用。