J'essaie d'obtenir une liste des dépendances de certains artefacts maven à l'aide org.apache.maven.project.MavenProject
.
Mon code est comme ça.
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);
}
Fondamentalement, j'essaie d'obtenir les résultats de l'arbre de dépendance qui retourne par mvn dependency:tree
commande sous forme de liste par programme.
Exemple Pour les artefacts:
com.google.inject:guide:4.2.2
ch.qos.logback:logback-classic:1.2.3
Liste des dépendances:
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
objetRéponses:
Vous pouvez utiliser la méthode
public Set<Artifact> getArtifacts()
de votreMavenProject
classe qui renvoie un ensemble d'artefacts représentant toutes les dépendances du projet, y compris les transitives.NB: Le contenu est rempli paresseusement, donc selon les phases qui ont exécuté les dépendances dans certaines étendues ne seront pas incluses. par exemple. si seule la phase de compilation s'est exécutée, les dépendances avec le test de portée ne seront pas incluses.
Toutes les informations proviennent de la documentation que vous pouvez trouver ici .
la source