2015-12-20 8 views
0

Учитывая Gradle проекта А, имеющей зависимость от проекта B (без общего родителя)Gradle исключить группу из зависимого подпроекта

compile project('B'){ 
    exclude group: 'org.slf4j' 
} 

как мы исключаем группу переходной зависимости от проекта мы зависим от? (эта часть сценария не получится, как не exclude для compile projet(..))

и более общий вопрос: есть элегантный способ, чтобы исключить конкретную группу из всех зависимостей, за исключением, если его первый уровень зависимости?

, например, мы можем иметь кучу библиотек, и каждый может заявить о своей протоколирования среды, но исключая все известные группы slf4j, ее реализации и объявить конкретную версию, мы бы гарантировать, что мы не имеем никаких конфликтов версий и будет управлять версией на уровне модуля.

+2

Он должен работать с 'компилировать (проект («B»)) {исключить группу:«орг. slf4j '} '. Обратите внимание на двойные парсеры. Ты пробовал? – Opal

+0

О, так что скобки исправили это, спасибо, могли бы вы предложить что-то для общего вопроса? потому что есть много зависимостей, было бы здорово просто исключить из них все эти группы и указать только точную версию, которую мы хотим ... – vach

+0

если второй вопрос непонятен, я могу попытаться показать примерный скрипт и обновить вопрос. .. просто дайте мне знать – vach

ответ

1

Вот пример из документации Gradle о том, как исключить транзитивные зависимость (я предполагаю, что это то, что вы имели в виду «за исключением, если его первая зависимость уровня») на уровне проекта:

configurations { 
    compile.exclude module: 'commons' 
    all*.exclude group: 'org.gradle.test.excludes', module: 'reports' 
} 

Престола 52.4.7. Исключение переходных зависимостейhere

Вы можете либо указать зависимость непосредственно с требуемой версии или использовать принудительную версию resolution strategy

+0

да, но вы видите, что я хочу добавить эту очень исключенную зависимость, но с моей указанной версией ... просто исключите извне и добавьте это ... – vach

+0

Вы можете либо указать зависимость напрямую с нужной версией, либо используйте стратегию разрешения принудительной версии: https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/ResolutionStrategy.html#force (java.lang.Object ...) –

+0

Пожалуйста, добавьте этот комментарий к ответ, как только я попробую, я приму ответ, просто чтобы убедиться, что он работает :) – vach

Смежные вопросы