作为Maven最终用户,可以很容易地将另一个目录添加到将在“编译”阶段编译的源目录列表中。我会使用build-helper-maven-plugin approach。
但是,在我自己的自定义插件中,我想以编程方式执行此操作。我的插件会生成一些java代码。我随后想将输出目录(包含生成的.java文件)添加到源路径列表中。
目前我手动不得不在我的所有POM中设置build-helper-maven-plugin配置来获取我正在生成的文件进行编译。
有关要查看的Maven API的哪些部分的任何指示?我的搜索只产生了来自最终用户的查询,这些查询是通过build-helper-maven-plugin方法解决的。
答案 0 :(得分:3)
为了找到我的答案,我看了一下ANTLR maven插件的源代码,我知道这个插件会添加源代码。请参阅AbstractAntlrMojo。
解决方案是将一个MavenProject
成员变量添加到Mojo中,并使用表达式将其绑定到项目中:
@Parameter(defaultValue="${project}")
private MavenProject project;
一旦有人对项目的引用,这是一个简单的方法调用:
project.addCompileSourceRoot("<DIRECTORY-PATH-HERE>");
这将确保编译包含生成代码的新目录。