我正按照here所述加载Maven项目。我试图找出如何检索源根,以便我可以找出我所拥有的Java类,以便我的Mojo可以使用它们。
我尝试了一些方法,比如getResources或getScriptSources没有运气。有什么想法吗?
提前致谢!
修改
我被要求详细说明我正在尝试做的事情,所以这里是:
我正在开发的插件将获取项目中的源代码并从中创建测试用例。除非配置,我想为所有类生成测试,为此,我需要以某种方式找出我的源代码,以便我可以正确配置。
希望有所帮助。
这是repository。我计划稍后发布它,但我按要求提供了源代码。
答案 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;
应该给你希望的结果。