Gradle добавить подмодуль из многомодульного подпроекта как зависимость другого подпроекта

У меня сложная, интересная ситуация:

root
|___ p1
|___ p2  // depends on p3/sp1
|___ p3
|____|___sp1
|____|___sp2

Я надеюсь, что это объясняет ситуацию.

Теперь, как бы я добавил sp1 в качестве зависимости от p2? Обратите внимание, что все проекты основаны на gradle.

Пока в моем корне setting.gradle, Я имею

rootProject.name = root
include 'p1'
include 'p2'
include 'p3'

В p2 build.gradle, у меня есть:

dependencies {
    compile project (':p3:sp1')
}

Но выполнение этого все еще не разрешает зависимости в p2; Я все еще получаю ошибки об отсутствующем определении.

Как это исправить?

Просто в сторону, как бы я разрешил другие зависимости, которые может иметь sp1. Например, если это зависит от sp2, нужно ли это как-то объявлять, даже если это уже разрешено в p3?

2 ответа

Предполагаемый проект sp1 а также sp2 являются subprojects проекта p3, если вы хотите сделать:

dependencies {
    compile project (':p3:sp1')
}

Тогда вам нужно изменить свой settings.gradle чтобы:

rootProject.name = root

include ':p1'
include ':p2'
include ':p3'    // Keep this if this folder contains a build.gradle
include ':p3:sp1'
include ':p3:sp2'

Просто чтобы добавить ответ для тех, кто может искать, в ваших настройках. Gradle у вас будет

include ':p1',':p2',':p3:sp1',':p3:sp2'

если sp1 зависит от sp2

затем добавить зависимость от Gradle SP1 как

dependency {
   compile project(":p3:sp2")
}
Другие вопросы по тегам