Многопроектный Gradle не импортирует должным образом - PullRequest
0 голосов
/ 05 июля 2018

Недавно я перевел свой gradle-проект в многопроектный gradle-проект. Вот моя структура на данный момент:

project-a
    -src
        -main
            -groovy
                -com.first
                    -FirstClass.groovy
    -build.gradle
common
    -src
        -main
            -groovy
                -com.common
                    -CommonClass.groovy
    -build.gradle
- settings.gradle
- build.gradle

Класс в Project A зависит от класса, определенного в Common (FirstClass зависит от ссылки на CommonClass).

Root settings.gradle выглядит так:

rootProject.name = 'root'
include ':common', ':project-a'

Root build.gradle выглядит так:

buildscript {
    repositories {
        mavenCentral()
    }
}

subprojects {
    repositories {
        mavenCentral()
    }
    version = '1.0'
    apply plugin : 'java'
    apply plugin : 'groovy'
    apply plugin : 'org.springframework.boot'

    sourceCompatibility = 1.8

    dependencies {
        compile 'org.codehaus.groovy:groovy-all:2.3.11'
    }
}

build.gradle для проекта A выглядит следующим образом:

dependencies {
    compile project(':common')
}

build.gradle для Project Common имеет свои зависимости:

dependencies {
    // ...list dependencies
}

Теперь, если я хочу использовать CommonClass в FirstClass, я получаю ошибку импорта с жалобой на CommonClass в FirstClass. Даже если я пересоберу CommonProject, а затем ProjectA, я получаю сообщение об ошибке и не знаю почему. Я подозреваю, что он ищет com.common.CommonClass в своем собственном каталоге project-a/src/main/groovy/, но не может его найти. Скорее этот класс определен в каталоге common/src/main/groovy/. Как правильно FirstClass ссылаться на каталог common/src/main/groovy, а не на собственный каталог project-a/src/main/groovy? Я использую Intellij, если я могу что-то сделать с этой конфигурацией, это было бы здорово

Помощь будет высоко ценится!

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