如何通过命令行运行“重建项目”

5

一些背景信息:

我正在为一个包含Android应用程序的大型项目使用MSBuild进行持续集成流水线的工作。该应用程序包括一些需要定期集成到项目中的自动生成的文件。通常,这是通过手动复制它们并在Android Studio中选择“构建-重建项目”来完成的。

由于该项目还使用AndroidAnnotations,因此必须执行此步骤以生成编译时的类。

问题:

我没有找到有关在Android Studio中选择“重建项目”时运行的内容的任何文档。

我尝试过的方法:

如何从命令行重新构建和运行Android项目

以及:

在Android Studio中运行重建项目后发生了什么?

但是这里的文档没有提到重建命令,而且6周的优达学城课程也不是一个有用的资源。

当我点击“重新构建项目”时,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控制台中列出的其他目标之一,但我不知道是哪一个。
那些目标一定是从某个地方来的,但是从哪里来呢?
简而言之:
如何在命令行中执行“重新构建项目”时做到与Android Studio相同的所有操作?

@dario.budmir 我已经尝试了你的解决方案,但仍然缺少一个目标。我认为关键问题是:“Android Studio从哪里获取所有这些目标?” - Sam Borick
1
你可以运行以下命令:./gradlew clean build assemble --stacktrace --debug - dario.budimir
因此,堆栈跟踪的输出为14 MB。我将尝试发布相关部分。 - Sam Borick
上传到Pastebin或类似的托管网站。 - dario.budimir
让我们在聊天中继续这个讨论 - Sam Borick
显示剩余3条评论
2个回答

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

enter image description here

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

./gradlew clean assembleRelease


问题是“如何从命令行运行'rebuild project'”。这个答案不包括命令行。 - Sam Borick
3
@SamBorick 在我的回答末尾,你可以找到: ./gradlew clean assembleRelease - tostao

0

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

注意:您还可以从运行配置中查看可运行/可构建的模块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接