2016-03-02 2 views
1

Предположим, у меня есть это в settings.gradle: include 'a', 'b', 'c', 'shared'Gradle подпроектов зависимость от общего кода

Естественно, я хочу а, Ь и с все зависит от «общий», так что я положил это в gradle.build: subprojects { dependencies { project(":shared") }}

Это не работает: попытка скомпилировать его не удалась из-за круговой зависимости («общий» зависит от самого себя).

Есть ли какой-либо путь вокруг этого, другой, который должен явно указывать зависимость для каждого подпроекта?

ответ

2

Вы можете сделать условие, основанное на имени проекта.

subprojects { 
    if (!project.name.contains('shared')) dependencies { compile project(":shared") } 
} 

(Не проверял, но какая-то форма это должно работать)

+0

Как примечание, project.name не содержит ':'. Итак, имя должно быть просто 'shared' – Stanislav

+0

@Stanislav Спасибо, исправлено. – RaGe

+0

Спасибо. На самом деле я нашел другой, но похожий способ: 'configure (subprojects - project (': shared')) {dependencies {...}}' Это тоже работает. – Dima

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