我正在尝试编写一个 Maven 插件,它执行以下操作:获取模块的所有依赖项并找出它的任何传递依赖项是否对当前模块的任何兄弟模块具有传递依赖项。
我的想法如下:
- 获取模块的父级(仅 POM 父级),然后获取其所有模块,以查找当前模块的兄弟姐妹。
- 获取模块的传递依赖项(但仅限于我们的组 ID)。
- 对于每个传递依赖,获取它的传递依赖并找出它们中的任何一个是否是兄弟模块之一。
我试过用 Maven 2 风格做,现在以 Aether 结束。但是,我不确定是否可以用 Aether 做我想做的事情。
目前,我可以获得仅 POM 的父级(不是使用 Aether,而是使用 MavenProject),我可以获得传递依赖项,然后过滤它们以仅保留具有我们组 ID 的工件。我没有在 Aether 中找到相当于 Maven FilterArtifacts 的东西。
所以,问题是:我关于如何实现目标的想法是否正确?我可以只用Aether吗?如果是,我该怎么做?还是我必须使用 Maven 2 和 Aether 的组合?(我试了一下,但是SNAPSHOT版和时间戳SNAPSHOT版的区别有点繁琐)
无论如何,非常感谢任何帮助!