Почему одна зависимость проекта заменена другой уже существующей - PullRequest
0 голосов
/ 20 мая 2018

Моя сборка не выполняется, потому что некоторые зависимости не встречаются.Когда я запускаю задачу Gradle зависимостей, я получаю нечто удивительное.Совершенно разные проекты project: state: api и project: bus: api трактуются не по-разному, а как одно и то же.Похоже, это причина, по которой я получаю только классы API-интерфейсов для автобуса.Но почему?Я использую Gradle 4.7, я также пробовал settings.gradle с rootProject.name в разных местах без каких-либо различий.

./gradlew server:dependencies --configuration compile | grep project
+--- project :bus:api
+--- project :bus:simple-list-bus
|    +--- project :bus:api
+--- project :state:api -> project :bus:api
+--- project :state:simple-state
|    +--- project :state:api -> project :bus:api
+--- project :utils:common

bus / build.gradle

subprojects {
    apply plugin: 'java'
    apply plugin: 'maven'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenCentral()
    }
}

bus / api/build.gradle

group 'kic'
version '1.0-SNAPSHOT'
archivesBaseName = 'kic-bus-api'

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

state / build.gradle

subprojects {
    apply plugin: 'java'
    apply plugin: 'maven'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenCentral()
    }
}

state / api / build.gradle

group 'kic'
version '1.0-SNAPSHOT'
archivesBaseName = 'kic-state-api'

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

1 Ответ

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

Мне кажется, что rootProject.name в settings.gradle больше не соблюдается.Очень похоже, что теперь есть только один (верхний корень) settings.gradle, уважаемый / разрешенный.Это означает, что нужно указать имена подмодулей в самых верхних корневых настройках. Gradle, например:

include ':bus'
include ':bus:api'
include ':bus:simple-list-bus'
include ':state'
include ':state:api'
include ':state:simple-state'

project(":state:api").name = "kic-state-api"
project(":state:simple-state").name = "kic-state-simple"
project(":bus:api").name = "kic-bus-api"
project(":bus:simple-list-bus").name = "kic-bus-simple"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...