从应用程序gradle运行库构建为build.dependsOn libraryBuild任务,不作为依赖项包含在应用程序gradle文件中

问题描述 投票:0回答:1

就我而言,我将在以下命令中运行此命令

 ./gradlew -q projects

它将返回以下输出


根项目

Root project 'MyProject'
+--- Project ':app'
\--- Project ':mymodule'

现在我要构建我的':app'(该应用的运行/绿色播放图标),因此':mymodule'应该自动构建但不将':mymodule'作为依赖项包含在':app'级别build.gradle

在应用程序级别build.gradle文件中类似这样的内容

task gradleBuild(type: GradleBuild ) {
    println "gradleBuild task start"
    doFirst{
        tasks=["mymodule:clean"]
        tasks = ["mymodule:build"]
    }
    doLast {
        tasks = ["mymodule:install"]
        println 'gradleBuild task end.'
    }

}

build.dependsOn gradleBuild

但是它不起作用,我收到如下的错误消息

Task :app:gradleBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Project 'mymodule' not found in project ':MyProject:app'.

settings.gradle中,我有这个

include ':app' , ':mymodule'
android android-studio gradle android-gradle
1个回答
0
投票

您需要自动构建库项目(在您的情况下为“ mymodule”,而无需将其包含在应用程序模块的build.gradle文件中,当我们按下“运行/绿色播放”图标时,可以通过以下方法实现。

一般运行图标将被配置为单一配置。这不在项目范围内,而是在模块范围内。因此,当您按图标时,不会构建“ mymodule”,而如果您调用1.从命令行构建gradlew2.同步项目3.单击制作项目

都构建了模块(app和mymodule)。

为了满足您的要求,我们必须编辑Android Studio中的现有应用程序配置以构建“ mymodule” lib项目。

  1. 在应用程序build.gradle中添加以下任务
task buildModule(type: GradleBuild) {
    buildFile = '../mymodule/build.gradle'
    tasks = ['build']
}
  1. 单击工具栏中的编辑配置

enter image description here

  1. 单击“启动部分之前”下的加号,然后选择带有“ android”图标的行。

enter image description here

  1. 选择后,将出现一个提示,并在提示中输入“:app:buildModule”,然后按“确定”

enter image description here

  1. 最终用户界面将会是

    enter image description here

  2. 应用更改,然后按您尝试的方式按“运行”图标。这将自动构建“ mymodule”。

© www.soinside.com 2019 - 2024. All rights reserved.