使用Gradle 1.10(不知道其他哪个版本有效)这是我根据这里给出的响应提出的[http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy]
我有一个api库项目,一个公共库项目和主应用程序项目。 每个都是一个独立的开发项目,这两个库可以在多个应用程序之间共享。
在公共项目的settings.gradle中:
def apiLibDir = file('../android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'
然后在主app项目settings.gradle中:
def apiLibDir = file('../android-libs/android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'
def commonLibDir = file('../android-libs/android-common/android-common-lib')
settings.createProjectDescriptor(rootProjectDescriptor, 'android-common-lib', commonLibDir)
include ':android-common-lib'
在每个相应的build.gradle文件中,您只需通过settings.createProjectDescriptor中的名称引用它们,就像您对任何其他项目的依赖性一样:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':android-api-lib')
compile project(':android-common-lib')
}
这似乎有效。 它甚至没有为定义api库的多个DEX文件引发错误,我怀疑因为它是同一个构建过程的所有部分而且Gradle足够聪明,可以全部解决。