gpt4 book ai didi

java - 使用 Aether 获取 MavenProject 的所有依赖项(包括传递性依赖项)

转载 作者:太空宇宙 更新时间:2023-11-04 07:38:12 25 4
gpt4 key购买 nike

如何使用 Aether 获取 MavenProject 的所有依赖项(包括传递性依赖项)?

我见过许多示例,其中您指定了 gav,它会解析 Artifact 及其所有依赖项。这一切都很好。但是,如果您的插件应该从您试图解决其依赖关系的同一个项目中调用,那么这似乎不起作用(或者也许我做错了)。有人可以给我一个如何做到这一点的工作示例吗?

我已经尝试过 this SO post 中显示的 jcabi-aether 示例.

最佳答案

尝试使用实用程序类 Classpath来自jcabi-aether :

Collection<File> jars = new Classpath(
this.getProject(),
new File(this.session.getLocalRepository().getBasedir()),
"test" // the scope you're interested in
);

您将获得插件所在的当前 Maven 项目的“测试”范围内的 JAR 和目录列表。

如果您有兴趣获取 Artifact 的列表使用 Aether 代替 File直接上课:

Aether aether = new Aether(this.getProject(), repo);
Set<Artifact> artifacts = new HashSet<Artifact>();
for (Artifact dep : this.getProject().getDependencyArtifacts()) {
artifacts.addAll(aether.resolve(dep, JavaScopes.COMPILE));
}

关于java - 使用 Aether 获取 MavenProject 的所有依赖项(包括传递性依赖项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com