Maven插件:访问多个模块的资源

时间:2016-08-29 09:17:38

标签: java maven maven-mojo

我目前正在编写一个自定义maven插件,用于在多模块maven项目中生成XML文件。

我的maven结构非常标准:父项目文件夹中的一个父项目和项目组件的模块:

-- Parent
  -- module A
  -- module B
  -- module C

我需要按模块列出一组由自定义注释标记的类。 我已经编写了一组自定义注释和一个annocation处理器,用于在编译时在相应的模块输出目录($ {project.build.outputDirectory})中创建XML文件。

现在我需要将每个模块XML合并到一个文件中,但我不知道如何从我的maven插件中访问每个模块,除了将每个路径设置为参数(我不喜欢这种方法)。

有关如何做到这一点的任何想法? maven插件是否可以遍历项目模块?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

经过一些研究,似乎MavenProject.getCollectedProjects()将返回由多模块项目中的目标执行操纵的项目列表。

答案 1 :(得分:0)

获取您可以使用的所有项目的列表:

List<MavenProject> projectList = MavenSession.getProjectDependencyGraph().getSortedProjects()

如果您的某个目标得到正确执行,您将获得所需的一切。每个MavenProject都包含getBaseDir()等等。