繁体   English   中英

试图将Gradle项目包含为依赖项,但include()无法正常工作

[英]Trying to include Gradle project as dependency, but include() not working

我有一个Gradle项目,它依赖于另一个Gradle项目。 我的项目结构如下:

  • 专案1
    • build.gradle
    • settings.gradle
    • src /
  • 项目2
    • build.gradle
    • settings.gradle
    • src /

project1/build.gradle我想添加project2作为依赖项:

version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

sourceSets {
    main {
        java {
            srcDirs = [ 'src' ]
        }
    }
}

include ':project2'
project(':project2').projectDir = new File("../project2")

dependencies {
    compile project(':project2')
}

不幸的是,我总是收到以下错误消息:

错误:(21,0)在类型为org.gradle.api.Project的根项目'project1'上找不到参数[:project2]的方法include()。

我正在使用Gradle 3.5,并且在命令行( gradle build )和IntelliJ中都收到此错误。 我发现了一些关于同一问题( thisthis )的StackOverflow线程,但是它们没有帮助。

Gradle多项目文档也没有提及我可能会遗漏的可能导致错误的任何特定要求。

当我退出include调用时,我收到一条消息,指出在根项目中找不到项目路径。

我还尝试将依赖项移至project1的子目录,但未成功。

我想知道我在做什么错,为什么其他人显然没有遇到相同的问题。 我会很感激的提示。

注意:这不是一个Android项目。

如第一条评论中所述, include实际上需要进入settings.gradle而不是build.gradle 更改projectDir属性也是projectDir

评论3也给了我另一个想法。 该项目可以包含在settings.gradle ,如下所示:

includeBuild '../project2'

project1/build.gradle我将依赖项指定为

dependencies {
    compile 'group:project2:version'
}

我通常会更好,因为它更少的代码并且看起来更干净。 但是不利的是,递归复合构建是不可能的。 因此,如果project2本身也是复合构建,则将无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM