Сбой зависимостей подпроектов с Gradle - PullRequest
0 голосов
/ 04 мая 2018

Я борюсь с Gradle и конфигурацией сборки следующей структуры проекта (довольно просто ...):

/projA
   /projB
   /projC

projC с использованием классов из projB.

В projA / settings.gradle:

include 'projB'
include 'projC'

В projC / build.gradle:

dependencies{
 compile project(':projB')
}

В IntelliJ у меня нет проблем с разрешением зависимостей, но когда я запускаю сборку ./gradlew в projA, я сталкиваюсь с ошибкой компиляции:

ClassC: Unresolved reference: ClassB

(где ClassC - это класс projC, отказавший при использовании ClassB, который является классом от projB, очевидно ...)

Обратите внимание, что код написан на языке Kotlin, у меня нет проблем с запуском приложения в IntelliJ (запуск при весенней загрузке), но любая сборка с Gradle выдает ошибку (как в Intellij, так и в командной строке).

Что мне не хватает?

С уважением, Adrien

1 Ответ

0 голосов
/ 04 мая 2018

Обычная идиома Gradle - иметь дополнительный каталог верхнего уровня для rootProject. Это специальный проект, который является родительским для всех других проектов в вашей сборке, в многопроектной сборке .

Вот куда уходит ваш settings.gradle файл:

include ':projA:projB'
include ':projA:projC'

Тогда я бы рекомендовал использовать projA в качестве подкаталога вашего rootProject, чтобы ваша иерархия выглядела следующим образом:

/myProject
  settings.gradle
  /projA
    build.gradle
    /projB
      build.gradle
    /projC
      build.gradle

Кроме того, в projC/build.gradle вместо этого вы захотите:

dependencies {
  compile project(':projA:projB')
}

Это должно сделать это.

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