gpt4 book ai didi

Gradle - 使现有的 android 项目成为其他项目的子项目并运行 "gradlew tasks"

转载 作者:行者123 更新时间:2023-12-03 04:38:17 24 4
gpt4 key购买 nike

第 1 部分。

我有一个使用 gradle 构建的现有 Android 项目。
settings.gradle看起来像这样:

include ':android', ':androidTest', ':androidTestApp'
build.gradle看起来像这样:
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仅新根项目的 include 'android-sdk:android'这就是我现在所需要的。一切正常,我可以像这样运行 android 项目的任务 gradlew androidBuild :
task androidBuild(dependsOn: 'android-sdk:android:assemble') << {
group unitySdkGroupName
}

当我运行 gradlew tasks 时出现问题在新的根项目上。我明白了
Caused by: org.gradle.api.UnknownTaskException: Task with path ':android:clean' not found in project ':android-sdk'.

我知道我可以通过删除这样的冒号来解决这个问题,但我想以某种方式使任务命令工作而不改变 android 项目如果可能的话。
    task customClean(dependsOn: ['android:clean', 'androidTest:clean', 'androidTestApp:clean']) {

}

第 2 部分。

当我添加到 settings.gradle根项目的其他嵌套项目
include 'android-sdk:androidTest'
include 'android-sdk:androidTestApp'

我在依赖于 android 的子项目的依赖项部分出现错误。模块(这是 androidTest 模块):
dependencies {
compile project(path: ":android")
compile 'com.google.android.gms:play-services:7.3.0'
}

并在我刷新项目时得到这个(再次看起来像相对路径问题):
Error:(30, 0) Project with path ':android' could not be found in project ':android-sdk:androidTest'.

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

最佳答案

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

https://discuss.gradle.org/t/nested-multimodule-builds-with-a-flat-directory-layout/7509/13

我什至在 https://discuss.gradle.org/c/bugs 上都找不到功能请求

关于Gradle - 使现有的 android 项目成为其他项目的子项目并运行 "gradlew tasks",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com