Intereting Posts

Как исключить модуль из всех зависимостей, но оставить явное объявление Gradle

Я пытаюсь решить проблему,

У меня есть некоторые зависимости, объявленные в файле build.gradle для моего приложения для Android, но проблема в том, что многие из этих зависимостей используют одну и ту же библиотеку appcompat-v7 , в моем случае appcompat-v7 .
Можно исключить эту библиотеку для каждой зависимости

 compile ('com.github......'){ exclude group: 'com.android.support', module: 'appcompat-v7' } 

Но мне нужно сделать это для каждой зависимости
Другой способ – использовать такое выражение

 configurations { compile.exclude module: 'appcompat-v7' } 

Это работает, но даже если объявить эту библиотеку явно, она игнорируется compile 'com.android.support:appcompat-v7:+'

Все, что мне нужно, это включить эту библиотеку только один раз для всего приложения, потому что если компиляция без исключения будет отображать много ошибок, как has been already defined .
Возможно, есть более простой способ заставить это работать. Я был бы благодарен за любую помощь, спасибо.

Solutions Collecting From Web of "Как исключить модуль из всех зависимостей, но оставить явное объявление Gradle"

Мы используем предоставленную конфигурацию в gradle (так что когда мы gradle: eclipse, пакеты включаются, но не включаются при компиляции в банку, так как эти банки должны быть предоставлены во время выполнения). Эта конфигурация выглядит следующим образом:

 configurations { provided { dependencies.all {dep -> configurations.default.exclude group: dep.group, module:dep.name } } compile.extendsFrom provided } 

Это позволяет нам включать зависимости следующим образом:

 dependencies { compile("org.scala-lang:scala-library:2.11.7") compile("org.scala-lang:scala-compiler:2.11.7") provided("org.apache.spark:spark-core_2_11:2.0.0") } при dependencies { compile("org.scala-lang:scala-library:2.11.7") compile("org.scala-lang:scala-compiler:2.11.7") provided("org.apache.spark:spark-core_2_11:2.0.0") } , dependencies { compile("org.scala-lang:scala-library:2.11.7") compile("org.scala-lang:scala-compiler:2.11.7") provided("org.apache.spark:spark-core_2_11:2.0.0") } 

Попробуйте создать конфигурацию, содержащую все зависимости, в которых вы хотите исключить appcompat-v7, а затем расширить компиляцию из этой новой конфигурации.