Gradle-将现有android项目作为其他项目的子项目并运行;gradlew任务“;

Gradle-将现有android项目作为其他项目的子项目并运行;gradlew任务“;,gradle,android-gradle-plugin,build.gradle,Gradle,Android Gradle Plugin,Build.gradle,第1部分。 我有一个现有的Android项目,它是用gradle构建的 settings.gradle如下所示: include ':android', ':androidTest', ':androidTestApp' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3'

第1部分。

我有一个现有的Android项目,它是用gradle构建的

settings.gradle
如下所示:

include ':android', ':androidTest', ':androidTestApp'
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}

task customClean(dependsOn: [':android:clean', ':androidTest:clean', ':androidTestApp:clean']) {

}

allprojects {
    repositories {
        mavenCentral()
        mavenLocal()
    }
}
build.gradle
如下所示:

include ':android', ':androidTest', ':androidTestApp'
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}

task customClean(dependsOn: [':android:clean', ':androidTest:clean', ':androidTestApp:clean']) {

}

allprojects {
    repositories {
        mavenCentral()
        mavenLocal()
    }
}
我需要做的是创建一个项目,它是这个android项目的父项目,并运行这个android项目任务。我添加到新根项目的
settings.gradle
包括“android sdk:android”
,这就是我现在所需要的。一切都很好,我可以运行android项目的任务,像这样
gradlew androidBuild

task androidBuild(dependsOn: 'android-sdk:android:assemble') << {
    group unitySdkGroupName
}
我知道我可以通过删除像这样的冒号来解决这个问题,但我希望尽可能使tasks命令在不改变android项目的情况下工作

    task customClean(dependsOn: ['android:clean', 'androidTest:clean', 'androidTestApp:clean']) {

}
第2部分。

当我添加到根项目和其他嵌套项目的
settings.gradle

include 'android-sdk:androidTest'
include 'android-sdk:androidTestApp'
我在依赖于
android
module(这是
androidTest
module)的子项目的依赖项部分得到错误:

当我刷新项目时得到这个(同样看起来像是相对路径问题):


所以问题是-我是否可以在不修改底层android项目的情况下使
gradlew tasks
命令正常工作,以及如何以最优雅的方式完成它?

不幸的是:不可以。嵌套的多项目构建是不可能的。我还应该补充一点,尽管已经表明了支持它们的意图,但绝对没有迹象表明何时可以使用此功能


我甚至在

上找不到功能请求,不幸的是:没有。嵌套的多项目构建是不可能的。我还应该补充一点,尽管已经表明了支持它们的意图,但绝对没有迹象表明何时可以使用此功能


我甚至在

上找不到功能请求,谢谢您的帮助。我已经解决了这个问题,包括了一个子项目来构建
includeFlat'android'项目(“:android”)。projectDir=new File(“android/android”)
感谢您的帮助。我已经解决了这个问题,包括一个子项目来构建
includeFlat'android'项目(“:android”)。projectDir=新文件(“android/android”)
Error:(30, 0) Project with path ':android' could not be found in project ':android-sdk:androidTest'.