2017-10-11 2 views
0

Je suis nouveau à Gradle et j'ai eu un énorme projet avec beaucoup de dépendances.Comment forcer Gradle à utiliser un pot spécifique?

Cependant, j'ai construit un jar spécifique que je veux utiliser à la place du jar dans les dépendances.
En build.gradle je la dépendance à commun:

"com.company.was.common.utils: était-utils-communs: $ {} wasUtilsCommonVersion",

La dépendance que je dois le changement est comme suit:

+--- com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1 
|    |    +--- com.company.security.logging:security-logging:16.11.0 (*) 
|    |    +--- com.company.was.security.encrypt:was-security-encrypt:17.8.1 
|    |    |    +--- commons-io:commons-io:2.5 
|    |    |    +--- commons-codec:commons-codec:1.10 
|    |    |    +--- com.company.security.logging:security-logging:16.11.0 (*) 
|    |    |    +--- com.company.was.common.utils:was-common-utils:17.7.0 -> 17.2.0 

Comment forcer gradle à utiliser le pot au lieu de j'ai construit

com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1? 

le chemin vers le pot est

/Users/anarinsky/eclipse-workspace/was-utils-storage-java/build/libs/was-utils-storage-java-SNAPSHOT.jar 
+0

Eh bien, pour une fois, vous ne pouvez pas ajouter la dépendance directement à la dépendance. Vous devez utiliser Gradle pour ajouter le pot en tant que dépendance. Voir [this] (https://stackoverflow.com/questions/20700053/how-to-add-local-jar-file-dependency-to-build-gradle-file) – Zoe

+0

@Zoe, comment déclarer que ce pot local écrase la dépendance com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1? –

+0

Si vous souhaitez remplacer une dépendance, supprimez-la. Si vous avez deux dépendances pour la même chose, vous obtiendrez des erreurs de fusion zip. Retirez simplement la ligne. EDIT: Peu importe, le tableau extrêmement mal formaté (maintenant formaté et lisible) change tout le sens de la question. Si vous voulez remplacer des paquets/dépendances spécifiques qui font partie d'une dépendance, c'est un sujet complètement différent – Zoe

Répondre

1

Dans Gradle l'ordre d'ajouter des dépendances sera dicte le pot final qui sera ajouté, ce qui signifie si vous ajoutez deux versions de x.jar Gradle ne prend pas la nouvelle ou fonctionne même une logique derrière tout cela, il suffit de les ajouter un par un et comme ils ont le même nom, le dernier écrasera le précédent. Dans votre cas, ajoutez simplement celui que vous avez créé en dernier.

0

Vous pouvez utiliser DependencyHandler pour définir les éléments qui seront ignorés. Exemple:

dependencies { 
    compile('org.hibernate:hibernate:3.1') { 
    //in case of versions conflict '3.1' version of hibernate wins: 
    force = true 

    //excluding a particular transitive dependency: 
    exclude module: 'cglib' //by artifact name 
    exclude group: 'org.jmock' //by group 
    exclude group: 'org.unwanted', module: 'iAmBuggy' //by both name and group 

    //disabling all transitive dependencies of this dependency 
    transitive = false 
    } 
}