Gradle: 如何将现有的完整项目包含为子项目?

Gradle: how to include an existing, complete project as a subproject?

我 git 从 github 克隆了一个完整的 gradle 项目 "CompleteGradleProjA" 并将其作为子模块包含到我的本地项目中。 "complete gradle project" 我的意思是我可以进入目录 "CompleteGradleProjA" 并发出命令

cd CompleteGradleProjA && gradle build

建造它。

我的目录结构是这样的,

MyProj
  |---CompleteGradleProjA
  |   |---build.gradle
  |
  |---build.gradle

我的问题是:如何调用 "CompleteGradleProjA/build.gradle" 而不更改根目录 "build.gradle" 中的任何内容?

以下 root "build.gradle" 配置没有帮助。

apply plugin: 'java'
dependencies {
  compile project(':CompleteGradleProjA')
}

我收到错误消息

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':compileJava'.
> Could not determine the dependencies of task ':compileJava'.

"CompleteGradleProjA" 是一个 android 项目,"CompleteGradleProjA/build.gradle" 看起来像这样

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

CompleteGradleProjA/build.gradle

apply plugin: 'com.android.library'
// if your project isn't library then use this:
// apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion '21.1.2'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 22
    }
}

dependencies {
    compile 'com.android.support:support-v4:22.2.0' // if needed
}

settings.gradle

include ':CompleteGradleProjA'

使用apply plugin: 'com.android.library'apply plugin: 'com.android.application'代替apply plugin: 'java'

要将自定义项目作为 gradle 构建的一部分,首先确保子模块已包含在项目文件夹中,并且可以通过 settings.gradle.即

include ':app', ':your_project_name'

您然后通过在项目的 build.gradle:

中使用将项目注册为另一个项目的依赖项
dependencies {
    compile project(path: ':your_project_name')
}