Ich versuche, eine Liste der Abhängigkeiten einiger Maven-Artefakte mit zu erhalten org.apache.maven.project.MavenProject
.
Mein Code ist so.
public List<Dependencies> loadProject() {
Model mavenModel = new Model();
mavenModel.setModelVersion("4.0.0");
mavenModel.setGroupId("org");
mavenModel.setArtifactId("wso2");
mavenModel.setVersion("1.0.0");
addDependency(mavenModel, "com.google.inject", "guice", "4.2.2");
addDependency(mavenModel, "ch.qos.logback", "logback-classic", "1.2.3");
MavenProject mavenProject = new MavenProject(mavenModel);
//******* Need to resolve dependencies of `mavenProject` and *******
//******* get the list of dependencies of this project. *******
return dependencies;
}
private static void addDependency(Model mavenModel, String groupId, String artifactId, String version) {
Dependency dependency = new Dependency();
dependency.setGroupId(groupId);
dependency.setArtifactId(artifactId);
dependency.setVersion(version);
mavenModel.addDependency(dependency);
}
Grundsätzlich versuche ich, die Ergebnisse des Abhängigkeitsbaums zu erhalten, die mvn dependency:tree
programmgesteuert als Befehl als Liste zurückgegeben werden.
Beispiel Für die Artefakte:
com.google.inject:guide:4.2.2
ch.qos.logback:logback-classic:1.2.3
Abhängigkeitsliste:
List = [
com.google.inject:guice:jar:4.2.2:compile,
javax.inject:javax.inject:jar:1:compile,
aopalliance:aopalliance:jar:1.0:compile,
com.google.guava:guava:jar:25.1-android:compile,
com.google.code.findbugs:jsr305:jar:3.0.2:compile,
org.checkerframework:checker-compat-qual:jar:2.0.0:compile,
com.google.errorprone:error_prone_annotations:jar:2.1.3:compile,
com.google.j2objc:j2objc-annotations:jar:1.1:compile,
org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile,
ch.qos.logback:logback-classic:jar:1.2.3:compile,
ch.qos.logback:logback-core:jar:1.2.3:compile,
org.slf4j:slf4j-api:jar:1.7.25:compile
]
org.apache.maven.project.MavenProject
MavenProject
Antworten:
Sie können die Methode
public Set<Artifact> getArtifacts()
IhrerMavenProject
Klasse verwenden, die eine Reihe von Artefakten zurückgibt, die alle Abhängigkeiten des Projekts darstellen, einschließlich der transitiven.NB: Der Inhalt ist träge ausgefüllt. Je nachdem, in welchen Phasen Abhängigkeiten ausgeführt wurden, werden Abhängigkeiten in einigen Bereichen nicht berücksichtigt. z.B. Wenn nur die Kompilierungsphase ausgeführt wurde, werden Abhängigkeiten mit Bereichstest nicht berücksichtigt.
Alle Informationen stammen aus der Dokumentation, die Sie hier finden .
quelle