Подпроект плоского включенного мультипроекта не найден в gradle - PullRequest
0 голосов
/ 06 марта 2019

Я застрял с переходной зависимой инъекцией в Gradle.У меня есть следующая структура:

A/
  build.gradle.kts
  settings.gradle.kts
B/
  build.gradle.kts
  settings.gradle.kts
  C/
    build.gradle.kts
  • A зависит от проекта B.
  • Квартира включает B
  • B включает C
  • Aи B находятся в разных репозиториях, поэтому для них нет общего корня.

Когда я строю A, я получаю следующую ошибку:

* Where:
Build file '/.../B/build.gradle.kts' line: 7
* What went wrong:
Project with path 'C' could not be found in project ':B'.

Что я должен вставить в A/settings.gradle.kts чтобы заставить его работать?


Вот все файлы для воспроизведения моей проблемы:

A / build.gradle.kts

plugins { `java-library` }
dependencies { api(project("B")) }

A / settings.gradle.kts

rootProject.name = "A"
includeFlat("B")

B / build.gradle.kts

plugins { `java-library` }
dependencies { api(project("C")) }

B/settings.gradle.kts

rootProject.name = "C"
include("C")

B / C / build.gradle.kts

plugins { `java-library` }
dependencies { }

Вот вывод списка проектов вB

B/# gradle -q projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'B'
\--- Project ':C'

1 Ответ

1 голос
/ 06 марта 2019

Вы можете попробовать что-то вроде:

A / settings.gradle.kts

rootProject.name = "A"
include("B", "B:C")
project(":B").projectDir = File(settingsDir, "../B")
project(":B:C").projectDir = File(settingsDir, "../B/C")

, что приводит к

gradle -q проектов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...