首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >依赖于有自己依赖性的项目(Gradle)

依赖于有自己依赖性的项目(Gradle)
EN

Stack Overflow用户
提问于 2015-07-28 13:25:55
回答 1查看 43关注 0票数 0

在使用Gradle的Android中,我有ProjectA,它依赖于ProjectB,但是Project B依赖于Project CProject D,就像这样.

Project A .. Project B .. Project C .. Project D

使用当前的Gradle脚本,我得到以下错误

代码语言:javascript
复制
Error:(22, 0) Project with path ':ProjectC:app' could not be found in project ':ProjectB:app'.

文件夹结构

代码语言:javascript
复制
.\workspace
    \ProjectA
        \app
        \build
        \gradle  
        \.gradle
        \.idea
    \ProjectB (same as A)
    \ProjectC (same as A)
    \ProjectD (same as A)`

A项目settings.gradle

代码语言:javascript
复制
include ':app', ':ProjectB:app'
project (':ProjectB:app').projectDir = new File(settingsDir, '../ProjectB/app')

A项目build.gradle项目

代码语言:javascript
复制
buildscript {
    repositories {
       jcenter()
    }
dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

A项目模块build.gradle

代码语言:javascript
复制
android {
    compileSdkVersion 19
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.movetogradle"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile project(path: ':ProjectB:app')        
}

项目B知道它依赖于C和D,使用了上述相同的方法。

我对整个格斗戏都很陌生。显然,在Eclipse (ANT)中,您只需说ProjectB是一个库。我们希望将它们保留为单独的项目,而不是模块,因为当ProjectB中的代码发生变化时,所有项目都会使用B。

如果我像ProjectCProjectD一样添加了对ProjectBProjectD的引用,我就可以让ProjectB构建。

如何才能使ProjectA依赖于ProjectB而不必声明ProjectA中的所有ProjectB依赖项

EN

回答 1

Stack Overflow用户

发布于 2015-07-28 13:34:01

当另一个项目包含在一个Gradle多项目构建中时,我很确定该项目没有读取settings.gradle文件。(参见等级文件,第56.2章)在多项目构建中,您至少需要将所有必需的项目包括在根settings.gradle文件中,因此在本例中,ProjectA的settings.gradle (我认为需要包含项目C和D才能工作)。A不需要声明更多的依赖项,但是需要让Gradle了解项目,以便构建它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31677698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档