编程语言
首页 > 编程语言> > java – 动态地将mojo生成的代码添加到源路径

java – 动态地将mojo生成的代码添加到源路径

作者:互联网

我创作了一个生成代码并将其粘贴在{root} / target / generated-sources / foo下的mojo.当我执行:

mvn clean install

我收到错误,表明生成的源没有包含在构建路径中(生成的文件在那里,但在编译阶段没有被选中).我从this answer了解到我需要动态添加{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());

标签:java,maven,pom-xml,mojo,generated-code
来源: https://codeday.me/bug/20190704/1374689.html