MavenProject:获取可在我的插件上使用的类

时间:2012-11-19 20:58:50

标签: maven maven-plugin

我正按照here所述加载Maven项目。我试图找出如何检索源根,以便我可以找出我所拥有的Java类,以便我的Mojo可以使用它们。

我尝试了一些方法,比如getResources或getScriptSources没有运气。有什么想法吗?

提前致谢!

修改

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

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

希望有所帮助。

这是repository。我计划稍后发布它,但我按要求提供了源代码。

2 个答案:

答案 0 :(得分:3)

您是否阅读过plugin developers documentation

该页面将链接到Plugins Cookbook,该Mojo Developer Cookbook链接到The maven project, or the effective pom. getCompileSourceRoots(),并且可以访问 org.apache.maven.project.MavenProject 对象通过

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

或者通过Java 5注释

@Component
MavenProject project;

您可以调用 maven-compiler-plugin 来获取将用于编译的目录列表。

您还需要了解有关如何设置包含/排除的更多信息。您可以使用其他插件作为如何执行此操作的示例,例如using annotations

如果您想使用注释,那么非常重要的是确保您的pom按照{{3}}配置,并且您也在类级别使用注释。混合javadoc注释可能不起作用。

答案 1 :(得分:0)

我认为最简单的解决方案是定义mojo parameter

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

或新annotation based definition

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

应该给你希望的结果。