Skip to content

Instantly share code, notes, and snippets.

@jajajaja
Created September 26, 2012 13:18
Show Gist options
  • Save jajajaja/3787981 to your computer and use it in GitHub Desktop.
Save jajajaja/3787981 to your computer and use it in GitHub Desktop.
Get the file content of all transitive dependencies using m2e
Model mvnModel = getMavenModel(Files.newInputStreamSupplier(mvnDescriptor));
final IMaven maven = MavenPlugin.getMaven();
final MavenProject project = maven.readProject(mvnDescriptor, progress);
MavenModelManager modelManager = new MavenModelManager(maven, null);
final List<File> result = Lists.newArrayList();
DependencyNode dependencyNode = modelManager.readDependencyTree(
null, project, "compile", progress);
dependencyNode.accept(new DependencyVisitor() {
public boolean visitEnter(DependencyNode node) {
if (node.getDependency() != null) {
org.sonatype.aether.artifact.Artifact a = node.getDependency().getArtifact();
Artifact artifact;
try {
artifact = maven.resolve(a.getGroupId(),
a.getArtifactId(),
a.getVersion(),
"jar",
a.getClassifier(),
project.getRemoteArtifactRepositories(), null);
result.add(artifact.getFile());
} catch (CoreException e) {
e.printStackTrace();
}
}
return true;
}
public boolean visitLeave(DependencyNode dependencynode) {
return true;
}
});
System.out.println(result);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment