代码之家  ›  专栏  ›  技术社区  ›  Luca

Gradle多模块项目无法找到模块依赖项

  •  2
  • Luca  · 技术社区  · 8 年前

    我正在尝试用Intellij构建一个简单的java项目,它有许多模块。

    我有以下项目结构: project_structure

    我的根项目 build.gradle :

    group 'com.wat'
    version '1.0-SNAPSHOT'
    
    apply plugin: 'java'
    
    sourceCompatibility = 1.8
    repositories {
        mavenCentral()
    }
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    

    我的根项目 settings.gradle :

    rootProject.name = 'Foot'
    include 'app'
    include 'model'
    

    和我的应用程序模块 建筑格拉德尔 :

    group 'com.wat'
    version '1.0-SNAPSHOT'
    
    apply plugin: 'java'
    
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
        compile project ':model'
    }
    

    Error:(14, 0) Could not get unknown property ':model' for DefaultProjectDependency{dependencyProject='project ':app'', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultProjectDependency.
    <a href="openFile:C:\Users\lukas\IdeaProjects\Foot\app\build.gradle">Open File</a>
    

    我在寻找类似的问题,但他们的解决方案都不能解决我的问题。

    当我离开的时候

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

    在每个模块中 建筑格拉德尔

    我得到以下错误:

    Error:(2, 0) Gradle DSL method not found: 'testCompile()'
    Possible causes:<ul><li>The project 'Foot' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
    <a href="fixGradleElements">Upgrade plugin to version 2.3.0 and sync project</a></li><li>The project 'Foot' may be using a version of Gradle that does not contain the method.
    <a href="open.wrapper.file">Open Gradle wrapper file</a></li><li>The build file may be missing a Gradle plugin.
    <a href="apply.gradle.plugin">Apply Gradle plugin</a></li>
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Yann Vo    8 年前

    你试过了吗

    compile project(path: ':model', configuration: 'compile')
    

    而不是

    compile project ':model'