Недавно я перевел свой 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, если я могу что-то сделать с этой конфигурацией, это было бы здорово
Помощь будет высоко ценится!