多项目gradle无法正确导入

时间:2018-07-05 03:01:27

标签: gradle intellij-idea groovy

我最近将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,那就太好了。

我们将不胜感激!

0 个答案:

没有答案