У меня есть три gradle
проекта. Скажите ProjectA
, ProjectB
и ProjectC
.
ProjectC
зависит от ProjectA
и ProjectB
. В то время как ProjectB
зависит от ProjectA
.
Итак, ProjectC
build.gradle
имеет следующие строки:
dependencies {
implementation project(':ProjectA')
implementation project(':ProjectB')
}
И ProjectB
build.gradle
имеет следующее:
dependencies {
implementation project(':ProjectA')
}
Мой вопрос: зачем мне нужно явное объявление implementation
для ProjectA
в файле сборки ProjectC
?
Поскольку я добавляю ProjectB
, не следует ли автоматически включать ProjectA
, поскольку ProjectB
зависит от ProjectA
?
Другими словами, почему следующее не работает для ProjectC
?
dependencies {
implementation project(':ProjectB')
}
Я новичок в gradle
и, таким образом, пытаюсь понять, как управление зависимостями между работой проекта.
Edit:
Итак, я хочу изменить build.gradle ProjectB
на ниже:
dependencies {
api project(':ProjectA')
}
Чтобы я мог упростить ProjectC
build.gradle до:
dependencies {
implementation project(':ProjectB')
}
Однако я получаю следующую ошибку:
A problem occurred evaluating project ':ProjectB'.
> Could not find method api() for arguments [:ProjectA] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Я что-то упустил?