23

Angenommen, ich möchte guice-assistedinject als Abhängigkeit in meinem Projekt hinzufügen. Es spezifiziert das Gussartefakt als eine Abhängigkeit selbst. Wie sage ich es, die no_aop-Version von guice zu verwenden?Wie spezifiziert man einen Klassifikator in Abhängigkeit von einer Graddle-Abhängigkeit?

Ich weiß, dass ich Folgendes tun kann, aber kann ich es in einem Schritt tun, ohne das Modul auszuschließen?

dependencies { 
    compile (group: 'com.google.inject.extensions', name: 'guice-assistedinject', version: '3.0') { 
    exclude module: 'guice' 
    } 
    compile group: 'com.google.inject', name: 'guice', version: '3.0', classifier: 'no_aop' 
} 

Antwort

40

Es gibt keine einfachere Lösung. Sie können den Code verkürzen, indem Sie kurze Abhängigkeitsnotation verwenden (z. B. "com.google.inject:guice:3.0:no_aop").

+0

Funktioniert das nur für ein .jar-Artefakt? Funktioniert dasselbe auch für ein .zip-Artefakt, d. H. Guice-3.0-no_app.zip, wenn es in Artifactory oder einem ähnlichen binären Repo verfügbar ist. –

+4

Gefundene Antwort: "com.google.inject: guice: 3.0: no_app @ zip" funktioniert in diesem Fall. –

+2

Wenn das Modul ein (korrektes) POM hat, wird '@ zip' nicht benötigt. "@ zip" bedeutet im Wesentlichen "bekomme nur dieses Zip-Artefakt, keine Notwendigkeit, das POM zu betrachten, keine Notwendigkeit, transitive Abhängigkeiten zu bekommen". –

Verwandte Themen