自定义Maven插件:以编程方式将源目录添加到项目

时间:2013-11-13 12:15:02

标签: maven maven-plugin

作为Maven最终用户,可以很容易地将另一个目录添加到将在“编译”阶段编译的源目录列表中。我会使用build-helper-maven-plugin approach

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

目前我手动不得不在我的所有POM中设置build-helper-maven-plugin配置来获取我正在生成的文件进行编译。

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

1 个答案:

答案 0 :(得分:3)

为了找到我的答案,我看了一下ANTLR maven插件的源代码,我知道这个插件会添加源代码。请参阅AbstractAntlrMojo

解决方案是将一个MavenProject成员变量添加到Mojo中,并使用表达式将其绑定到项目中:

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

一旦有人对项目的引用,这是一个简单的方法调用:

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

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