gpt4 book ai didi

java - 以编程方式下载 Maven 依赖项

转载 作者:行者123 更新时间:2023-12-02 06:06:21 30 4
gpt4 key购买 nike

我一直在尝试通过 aether 以编程方式下载所有 Maven 依赖项。我可以获得所有传递依赖项(由代码提供

https://github.com/apache/maven-resolver/blob/master/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/解析器/示例/ResolveTransitiveDependency.java

但是,因为它不会下载依赖项所需的任何插件。

由于我对 Maven 还很陌生,所以我可能会在这里遗漏一些完全明显的东西,但我们将不胜感激任何帮助。

如果我尝试使用 ResolveTransitiveDependency.java 下载 sonarqube 插件的依赖项,我会正确下载以下内容。

org\sonarsource\scanner\maven\sonar-maven-plugin\3.6.0.1398\sonar-maven-plugin-3.6.0.1398.jar
org\sonatype\plexus\plexus-sec-dispatcher\1.4\plexus-sec-dispatcher-1.4.jar
org\sonatype\plexus\plexus-cipher\1.4\plexus-cipher-1.4.jar
org\codehaus\plexus\plexus-utils\3.0.22\plexus-utils-3.0.22.jar
org\sonarsource\scanner\api\sonar-scanner-api\2.12.0.1661\sonar-scanner-api-2.12.0.1661.jar
commons-lang\commons-lang\2.6\commons-lang-2.6.jar

但是,它不会下载属于单个传递依赖 POM 一部分的任何插件。有没有办法从以太中做到这一点?

最佳答案

您可以尝试 Jeka 库 ( https://jeka.dev ) 来完成此任务。

import dev.jeka.core.api.depmanagement.*;

import java.nio.file.Path;
import java.util.List;

import static dev.jeka.core.api.depmanagement.JkJavaDepScopes.*;

public class SampleDepDownload {

public static void main(String[] args) {
JkDependencySet deps = JkDependencySet.of()
.and("com.googlecode.playn:playn-core:1.4")
.and("com.threerings:tripleplay:1.4")
.withDefaultScopes(COMPILE_AND_RUNTIME);
JkDependencyResolver resolver = JkDependencyResolver.of(JkRepo.ofMavenCentral());
List<Path> libs = resolver.resolve(deps, RUNTIME).getFiles().getEntries();
}
}

关于java - 以编程方式下载 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55938870/

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