2013-07-16 23 views
6

Sto usando il dependency:analyze per rilevare i problemi di dipendenza. Ma ho trovato un problema con le dipendenze transitive perché il plugin non risolve queste dipendenze.Dipendenza Maven 2.1: analizzare. Dipendenze transitive: trovate le dipendenze non dichiarate usate

Quando eseguo la dipendenza mvn: tree, l'output mostra le dipendenze transitive.

Dipendenze

project A 
    dependency B 
project C 
    dependency A 

Outuput -> (progetto C - percorso)/mvn clean install

[WARNING] Used undeclared dependencies found: 
    dependency B: compile 

Plugin

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>analyze</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>analyze-only</goal> 
      </goals> 
      <configuration> 
       <failOnWarning>true</failOnWarning> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Perché il plug-in non rileva la dipendenza transitiva

+0

non proprio informazioni sufficienti qui per rispondere alla tua domanda. Cosa ti aspettavi che l'uscita dicesse? Su quale progetto hai eseguito l'analisi? –

+0

Eseguo "mvn clean install" su Progetto C. Se metto l'opzione failOnWarning su false, l'avviso scompare e l'esecuzione è OK. Perché il plugin non rileva la dipendenza transitiva –

risposta

5

L'analisi delle dipendenze funziona come previsto.

Il codice nel progetto C utilizza le classi del progetto B ma non dipende direttamente dal progetto B. Si compila solo perché dipende transitivamente da B attraverso il progetto A. La modifica della dipendenza del progetto A interromperà il progetto C. Questo è ciò che stanno cercando di evitare

Questo non va bene, se il codice utilizza le classi da B, dovrebbe direttamente dipendono B.

+0

Ho bisogno della dipendenza Progetto A perché contiene librerie e codice comuni –

+0

Anche questo va bene, sia C dipendente da A e B. –

+0

No, non dovrei farlo, e io sono cercando di lavorare con le dipendenze transitive. –