Загрузите maven-зависимости программно - PullRequest
0 голосов
/ 01 мая 2019

Я пытался загрузить все maven-зависимости программно через эфир.Я могу получить все транзитивные зависимости (любезно предоставленные кодом из

https://github.com/apache/maven-resolver/blob/master/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java

, потому что он не загружает ни один из плагинов, необходимых для зависимости.

Так как я новичок в Maven, я мог бы упустить что-то совершенно очевидное здесь, но любая помощь будет принята с благодарностью.

Если я попытаюсь загрузить зависимости для плагина sonarqube с ResolveTransitiveDependencies.java, я получу следующееправильно загружен.

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 транзитивной зависимости, s. Есть ли способ сделать это из Aether?

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете попробовать библиотеку 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();
    }
}
...