gpt4 book ai didi

java - 如何使用 Maven Artifact Resolver 解析 Maven 依赖并获取所有传递依赖?

转载 作者:行者123 更新时间:2023-12-02 02:18:23 25 4
gpt4 key购买 nike

我有一个 Maven 项目,我正在尝试使用 Artifact 解析器 API 获取直接依赖项的所有传递依赖项。如何以编程方式实现此目的?

使用 aether-1.1.0 可以获得相同的功能。但是我们需要迁移到 Maven Artifact Resolver{ https://maven.apache.org/resolver/index.html }.我尝试了如下所示的一些方法,

@Component
private org.apache.maven.repository.RepositorySystem repoSystem;
..
ArtifactRepository artifactRepo = new MavenArtifactRepository();
org.apache.maven.repository.Proxy mavenProxy = new org.apache.maven.repository.Proxy();
mavenProxy.setHost(proxyDetails.getHost());
mavenProxy.setPort(proxyDetails.getPort());

Artifact sourcesArtifact = repoSystem.createArtifact(rootGroupId, rootArtifact, rootVersion, JavaScopes.COMPILE,"jar");
sourcesArtifact.setRepository(artifactRepo);
ArtifactResolutionRequest request2 = new ArtifactResolutionRequest().setArtifact(sourcesArtifact);
ArtifactResolutionResult depResult =repoSystem.resolve(request2);
result2.getArtifacts().forEach(dep5 -> {
System.out.println(dep5.getId());
....}

但这里没有打印任何传递依赖项

预期结果是:我需要给定直接依赖项的传递依赖项列表。

最佳答案

使用org.eclipse.aether.resolution.DependencyRequest,javadoc状态:

A request to resolve transitive dependencies. This request can either be supplied with a CollectRequest to calculate the transitive dependencies or with an already resolved dependency graph.

然后将其用作 RepositorySystem.resolveDependencies 的参数

关于java - 如何使用 Maven Artifact Resolver 解析 Maven 依赖并获取所有传递依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57288465/

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