7

Ho un progetto che ha la libreria apache-compress come una dipendenza del tempo di compilazione. Questa libreria sembra utilizzare Maven e ha un file POM con una dipendenza impostata come "opzionale". Ecco la relativa sezione del file POM:Gradle non include dipendenze opzionali

<dependency> 
    <groupId>org.tukaani</groupId> 
    <artifactId>xz</artifactId> 
    <version>1.5</version> 
    <optional>true</optional> 
</dependency> 

Gradle non sembra includere questa libreria per il mio progetto, sto cercando di indovinare che è perché dell'attributo "optional". C'è un modo per dire a Gradle di includere questa dipendenza senza includere esplicitamente la libreria xz da solo?

Qui è la mia dichiarazione Gradle dipendenza: compile group: 'org.apache.commons', name:'commons-compress', version:'1.8.1'

+1

Utilizzando questa stessa dipendenza con Ivy, sembra che Ivy includa dipendenze opzionali per impostazione predefinita, o forse ignora completamente tale impostazione. – jjathman

risposta

9

dipendenze opzionali non sono considerati per la risoluzione transitiva delle dipendenze, e devono essere aggiunti in modo esplicito, se necessario. (È lo stesso in Maven.)

+0

Grazie per la risposta definitiva. C'è un modo per dire a gradle di includere la versione della libreria xz che è definita nel commons-compress POM invece di definire esplicitamente qualche versione? – jjathman

+4

No, non c'è (anche se posso vedere questo essere utile). –

Problemi correlati