У меня есть два независимых проекта Gradle, которые я также хочу построить из одного основного проекта Gradle:
main-project
build.gradle
settings.gradle
--subproject-one
build.gradle
settings.gradle
--module-a
build.gradle
--subproject-two
build.gradle
settings.gradle
--module-b
build.gradle
Мои главные настройки. Gradle включает все модули из подпроектов:
file('subproject-one').eachDir { dir ->
if(dir.list().contains("build.gradle")) {
include dir.name
project(":${dir.name}").projectDir = dir
}
}
file('subproject-two').eachDir { dir ->
if(dir.list().contains("build.gradle")) {
include dir.name
project(":${dir.name}").projectDir = dir
}
}
Теперь у меня есть зависимость от module-b в subproject-two до module-a в subproject-one .Я использую переключатель компиляции (useProjectDependencies), чтобы включить их как зависимости проекта, когда я строю из основного проекта, и как обычные зависимости, когда я строю из подпроектов:
if(useProjectDependencies){
compile project(':module-b')
} else {
//Client dependencies
compile "my.group.id:module-b
}
Через gradle, я теперь могу построитьосновной проект, включающий подпроект, а также каждый подпроект сам по себе.
Когда я сейчас открываю основной проект через IntelliJ, я вижу, что все модули распознаются правильно, а также работают перекрестные ссылки на классы между модулями.правильно (рефакторинг интерфейса между компонентами работает отлично).
Когда я сейчас пытаюсь использовать интеграцию gradle из Intellij и нажимаю на ассемблер для module-b , тогда это неправильноиспользует форму build.gradle и settings.gradle из subproject-two и не использует зависимости проекта.Похоже, что IntelliJ или демон Gradle ищет первые параметры. Gradle снизу вверх от module-b вместо использования в основном проекте 1035 *.
При сборке через терминал из папки main-project все работает правильно:
gradlew :module-b:assemble //correct *settings.gradle* and *build.gradle* is used
При удалении settings.gradle и build.gradle из subproject-two , затем правильно используется build.gradle из main-project .
Есть ли способ указать settings.gradle и build.gradle , который используется как часть интеграции IntelliJ gradle?