7

Ich habe ein Projekt, das die apache-compress-Bibliothek als Kompilierzeitabhängigkeit hat. Diese Bibliothek scheint Maven zu verwenden und hat eine POM-Datei mit einer Abhängigkeit, die als "optional" eingerichtet wurde. Hier ist der relevante Abschnitt der POM-Datei:Gradle enthält keine optionale Abhängigkeit

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

Gradle scheint nicht diese Bibliothek gehört in meinem Projekt, ich vermute, es ist wegen des „optional“ Attributs ist. Gibt es eine Möglichkeit, Gradle zu sagen, diese Abhängigkeit einzubeziehen, ohne die XZ-Bibliothek explizit einzubeziehen?

Hier ist meine Gradle Abhängigkeitserklärung: compile group: 'org.apache.commons', name:'commons-compress', version:'1.8.1'

+1

Mit dieser Abhängigkeit mit Ivy scheint es, dass Ivy optionale Abhängigkeiten standardmäßig enthält, oder möglicherweise ignoriert diese Einstellung vollständig. – jjathman

Antwort

9

Optionale Abhängigkeiten sind nicht für die transitive Abhängigkeit Auflösung betrachtet und haben ausdrücklich bei Bedarf hinzugefügt werden. (Es ist das gleiche in Maven.)

+0

Danke für die definitive Antwort. Gibt es eine Möglichkeit, zu sagen, Gradle, um die Version der XZ-Bibliothek, die in der Commons-Compresse-POM definiert ist, statt explizit definieren einige Version? – jjathman

+4

Nein, gibt es nicht (obwohl ich sehen kann, dass das nützlich ist). –