在使用Gradle的Android中,我有ProjectA,它依赖于ProjectB,但是Project B依赖于Project C和Project D,就像这样.
Project A .. Project B .. Project C .. Project D
使用当前的Gradle脚本,我得到以下错误
Error:(22, 0) Project with path ':ProjectC:app' could not be found in project ':ProjectB:app'.文件夹结构
.\workspace
\ProjectA
\app
\build
\gradle
\.gradle
\.idea
\ProjectB (same as A)
\ProjectC (same as A)
\ProjectD (same as A)`A项目settings.gradle
include ':app', ':ProjectB:app'
project (':ProjectB:app').projectDir = new File(settingsDir, '../ProjectB/app')A项目build.gradle项目
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
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。
如果我像ProjectC和ProjectD一样添加了对ProjectB和ProjectD的引用,我就可以让ProjectB构建。
如何才能使ProjectA依赖于ProjectB而不必声明ProjectA中的所有ProjectB依赖项
发布于 2015-07-28 13:34:01
当另一个项目包含在一个Gradle多项目构建中时,我很确定该项目没有读取settings.gradle文件。(参见等级文件,第56.2章)在多项目构建中,您至少需要将所有必需的项目包括在根settings.gradle文件中,因此在本例中,ProjectA的settings.gradle (我认为需要包含项目C和D才能工作)。A不需要声明更多的依赖项,但是需要让Gradle了解项目,以便构建它们。
https://stackoverflow.com/questions/31677698
复制相似问题