2012-11-02 16 views
5

Questo è simile ad altre domande (like this), ma voglio essere in grado di farlo con le ultime API. Il plugin maven-dependency: tree verbose è stato deprecato e non fa nulla nell'ultimo (2.5.1) codice, quindi non c'è un buon esempio di come farlo.Come elencare in modo programmatico tutte le dipendenze transitive, comprese quelle sottoposte a override in Maven usando DependencyGraphBuilder?

+0

Attualmente il nuovo Aet lei che è usata in questo non fornisce tali informazioni. Solo le versioni precedenti del plugin maven-dependency forniscono tali informazioni (http://maven.40175.n5.nabble.com/maven-dependency-plugin-Questions-td5729997.html). – khmarbaise

+0

Immagino che significhi la risposta breve è che al momento non è possibile. Almeno fino a quando Hervé potrebbe essere una soluzione nel nucleo di Maven. – Ben

risposta

3

Credo Aether classe di utilità da jcabi-aether può aiutare a ottenere un elenco di tutte le dipendenze di qualsiasi manufatto Maven, per esempio:

File repo = this.session.getLocalRepository().getBasedir(); 
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
    new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"), 
    JavaScopes.RUNTIME 
); 

Se siete al di fuori di Maven plugin:

File repo = new File("/tmp/local-repository"); 
MavenProject project = new MavenProject(); 
project.setRemoteProjectRepositories(
    Arrays.asList(
    new RemoteRepository(
     "maven-central", 
     "default", 
     "http://repo1.maven.org/maven2/" 
    ) 
) 
); 
Collection<Artifact> deps = new Aether(project, repo).resolve(
    new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"), 
    "runtime" 
); 

l'unica dipendenza che vi serve è:

<dependency> 
    <groupId>com.jcabi</groupId> 
    <artifactId>jcabi-aether</artifactId> 
    <version>0.7.5</version> 
</dependency> 
+0

Okay ... E come funzionerebbe se volessi usarlo su un 'MavenProject.getArtifact'? C'è un modo per farlo? (Ho chiesto questo qui: http://stackoverflow.com/questions/16480314/get-all-the-dependencies-of-a-mavenproject-including-transitive-ones-using-aet). – carlspring

+0

Prova ad usare una classe di utilità ['Classpath'] (http://www.jcabi.com/jcabi-aether/apidocs-0.7.19/com/jcabi/aether/Classpath.html) da [' jcabi-aether' ] (http://www.jcabi.com/jcabi-aether/example-classpath.html) (Ho risposto anche alla tua altra domanda) – yegor256

Problemi correlati