3

作为 Maven 最终用户,在“编译”阶段将要编译的源目录列表中添加一个附加目录很简单。我会使用build-helper-maven-plugin 方法

但是,在我自己的自定义插件中,我想以编程方式执行此操作。我的插件会生成一些 java 代码。我随后想将输出目录(包含生成的 .java 文件)添加到源路径列表中。

目前,我必须在所有 POM 中手动设置 build-helper-maven-plugin 配置,以获取要编译的文件。

关于要查看 Maven API 的哪一部分的任何指针?我的搜索只产生了来自最终用户的查询,这些查询通过 build-helper-maven-plugin 方法解决。

4

1 回答 1

4

为了找到我的答案,我查看了 ANTLR maven 插件的源代码,我知道它会将源代码添加到路径中。请参阅AbstractAntlrMojo

解决方案是MavenProject使用表达式将成员变量添加到您的 Mojo 以将其绑定到项目:

@Parameter(defaultValue="${project}")
private MavenProject project;

一旦有了对项目的引用,它就是一个简单的方法调用:

project.addCompileSourceRoot("<DIRECTORY-PATH-HERE>");

这将确保包含生成代码的新目录将被编译。

于 2013-11-13T12:33:40.610 回答