【问题标题】:How to run 'rebuild project' from the command line如何从命令行运行“重建项目”
【发布时间】:2017-02-14 14:28:09
【问题描述】:

一些上下文:

我正在使用 MSBuild 为一个包含 Android 应用程序的大型项目开发持续集成管道。该应用程序包括一些需要定期集成到项目中的自动生成的文件。这通常是通过手动复制它们并在 android studio 中选择 Build->rebuild project 来完成的。

此步骤是必要的,因为该项目还使用了AndroidAnnotations,它在编译时生成类。

问题:

当您在 android studio 中选择“重建项目”时,我没有找到任何有关运行内容的文档。

我尝试了什么:

How to Rebuild and Run android project from command line

还有:

What is happened after I run rebuild project in Android studio?

但是文档here 没有谈论重建命令,而且 6 周的 udacity 课程也不是有用的资源。

当我点击“重建项目”时,Android Studio 事件日志显示:

执行任务:[clean, :app:generateDevelopmentDebugSources, :app:generateDevelopmentDebugAndroidTestSources, :app:prepareDevelopmentDebugUnitTestDependencies, :app:mockableAndroidJar, :app:compileDevelopmentDebugSources, :app:compileDevelopmentDebugAndroidTestSources, :app:compileDevelopmentDebugUnitTestSources]

我在命令行中运行如下:

gradlew.bat clean :app:generateDevelopmentDebugSources :app:generateDevelopmentDebugAndroidTestSources :app:prepareDevelopmentDebugUnitTestDependencies :app:mockableAndroidJar :app:compileDevelopmentDebugSources :app:compileDevelopmentDebugAndroidTestSources :app:compileDevelopmentDebugUnitTestSources

命令执行,但构建完成后出现数百个错误,当您尝试编译或清理而不首先运行重新构建时也会发生这种情况。显然这个命令是不完整的。

当我查看 Android Studio 中的 Gradle 控制台时,我看到了几十个正在运行的目标,但我对复制粘贴这些目标犹豫不决,因为我不知道对项目进行哪些小的更改需要不同的目标要运行。

我已将问题范围缩小到:app:compileDevelopmentDebugUnitTestJavaWithJavac 目标。此目标需要 Gradle 控制台中列出的其他目标之一,但我不知道是哪一个。

这些目标必须来自某个地方,但来自哪里?

tl;博士:

当我从命令行运行“重建项目”时,如何执行 Android Studio 所做的所有事情?

【问题讨论】:

  • 通常从终端运行./gradlew clean build assemble 现在最后一个可以是其他任何东西,例如:assembleDebug try
  • @dario.budmir 我已经玩过它并尝试了您的解决方案,但仍然缺少目标。我认为关键问题是“Android Studio 从哪里获得所有这些目标?”
  • 你能用 --stacktrace --debug 发布构建日志
  • 你可以运行:./gradlew clean build assemble --stacktrace --debug
  • 所以堆栈跟踪的输出是 14 MB。我会尝试发布相关部分

标签: android windows android-studio gradle msbuild


【解决方案1】:

Rebuildbuild 是一回事。您可以通过运行命令 gradle task --listgradle -q :tasks --all 列出所有 gradle 任务。在那里你可以看到不同类型的 gradle 任务。例如,安装任务、构建任务、组装任务、发布任务、验证任务、构建设置任务、清理任务、android 任务或您自己的自定义命名任务等。在您的模块中运行构建任务(例如,MyModule:build ) 像这样gradle MyModule:build (或者./gradlew MyModule:build,如果你想在 gradle 包装器中使用)

注意:您也可以从 Run Configurations 中查看您的可运行/可构建模块。

【讨论】:

    【解决方案2】:

    请在 Android Studio 中打开 build 视图,当您从菜单中选择时:Build -> Rebuild Project 在顶部的 build 视图中,您将看到 Android Studio 触发了哪些任务:Executing tasks: [clean, :assembleDebug] in project ...

    现在您可以尝试从命令行执行此操作:

    ./gradlew clean assembleRelease

    【讨论】:

    • 问题是'如何从命令行运行'重建项目''。此答案不包括命令行。
    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多