2013-07-15 15 views
24

Ho un progetto in cui sto usando sl4j con log4j. Di recente ho aggiunto alcune nuove dipendenze al mio progetto e una di queste nuove dipendenze che ho aggiunto include una dipendenza transitiva per logback-classic, che include un altro bind per sj4j.Determinare la fonte della dipendenza transitiva

Voglio sbarazzarmi del logback, ma non ho idea di quale delle mie dipendenze dirette abbia aggiunto la dipendenza transitiva in modo che io possa escluderla.

In maven so come ottenere l'intero grafico delle dipendenze per determinare qual è la fonte di una dipendenza transitiva, ma non ho idea di come farlo con gradle.

Qualcuno sa come ottenere la dipendenza di origine da una dipendenza transitiva con gradle?

risposta

37

Per mostrare l'intero albero delle dipendenze per ogni percorso classe, utilizzare gradle dependencies. Se sei interessato solo a un particolare percorso di classe, usa (diciamo) gradle dependencies --configuration compile. Utilizzare l'opzione -p per l'esecuzione su un sottoprogetto.

Per mostrare chi entra in una particolare dipendenza su un particolare percorso di classe e come sono stati risolti eventuali conflitti di versione, utilizzare (ad esempio) gradle dependencyInsight --dependency logback --configuration compile.

Si noti che è anche possibile escludere una dipendenza da un intero percorso di classe (o più). Di solito questo è più affidabile dell'escludere una particolare dipendenza transitiva. Ad esempio:

configurations.all*.exclude module: "logback-classic" 
Problemi correlati