2

我正在加载一个 Maven 项目,如此所述。我试图弄清楚如何检索源根,以便找出我拥有的 Java 类,以便我的 Mojo 可以使用它们。

我尝试了其中的几种方法,例如 getResources 或 getScriptSources ,但没有运气。任何的想法?

提前致谢!

编辑:

我被要求详细说明我正在尝试做的事情,所以这里是:

我正在开发的插件将获取项目中的源代码并从中创建测试用例。除非配置,否则我想为所有类生成测试,为此,我需要以某种方式找出我的源在哪里,以便我可以正确配置。

希望有帮助。

这是存储库。我计划稍后发布它,但我按要求提供了来源。

4

2 回答 2

3

你读过插件开发者文档吗?

该页面将链接到Plugins Cookbook,后者链接到Mojo Developer Cookbook,其中包含maven 项目或有效的 pom。并允许您通过以下方式访问org.apache.maven.project.MavenProject对象

/** @parameter default-value="${project}" */
private org.apache.maven.project.MavenProject mavenProject;

或者通过 Java 5 注释

@Component
MavenProject project;

您可以调用getCompileSourceRoots()来获取将用于编译的目录列表。

您还需要阅读有关如何设置包含/排除的更多信息。您可以使用其他插件作为如何执行此操作的示例,例如maven-compiler-plugin

如果你想使用注解,确保你的 pom 被配置为使用注解并且你也在类级别使用注解是非常重要的。混合 javadoc 注释可能不起作用。

于 2012-11-26T22:53:36.233 回答
0

我认为最简单的解决方案是定义一个mojo 参数

/**
 * @parameter default-value="${project.build.sourceDirectory}"
 * @required
 */
private File sourceDirectory;

或使用新的基于注释的定义

@Parameter(required = true, defaultValue="${project.build.sourceDirectory}"}
private File sourceDirectory;

这应该会给你想要的结果。

于 2012-11-20T07:00:37.350 回答