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

时间:2015-06-10 15:51:31

标签: android gradle multi-project

我从github克隆一个完整的gradle项目“CompleteGradleProjA”,并将其作为子模块包含在我的本地项目中。通过“完全gradle项目”我的意思是我可以进入目录“CompleteGradleProjA”并发出命令

SecurityContextHolder.getContext().setAuthentication(null);

建立它。

我的目录结构如下所示,

cd CompleteGradleProjA && gradle build

我的问题是:我如何调用“CompleteGradleProjA / build.gradle”而不从我的根“build.gradle”更改它的任何内容?

以下根“build.gradle”配置无效。

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

我收到了错误消息

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

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

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'.

2 个答案:

答案 0 :(得分:1)

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'

答案 1 :(得分:0)

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

include ':app', ':your_project_name'

然后,您可以在项目的 build.gradle 中使用项目作为他人的依赖项注册:

dependencies {
    compile project(path: ':your_project_name')
}