我最近将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
项目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'
}
}
Project A的build.gradle如下:
dependencies {
compile project(':common')
}
Project Common的build.gradle有其自己的依赖性:
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,那就太好了。
我们将不胜感激!