【问题标题】:how to do something before a task in Android gradle build?如何在 Android gradle build 中的任务之前做一些事情?
【发布时间】:2016-03-11 18:58:52
【问题描述】:

好吧,当android studio构建时,gradle控制台中有很多任务列表,如下所示:

...
:app:buildInfoDevDebugLoader
:extra:ViewPagerIndicator:preBuild UP-TO-DATE
:extra:ViewPagerIndicator:preReleaseBuild UP-TO-DATE
:extra:sweetalertdialoglibrary:preBuild
:extra:Android-PullToRefresh:preBuild UP-TO-DATE
:extra:sweetalertdialoglibrary:preBuild UP-TO-DATE
...

现在我想在其中一个之前做一些事情(就像一个任务)(例如“:app:buildInfoDevDebugLoader”),那么我应该在 build.毕业

提前致谢。

【问题讨论】:

  • 我能知道你为什么要这样做吗?
  • AndroidAnnotation(AA) 框架总是生成新的类(无论我是否修改与 AA 相关的代码。)当我在 android studio 中使用新功能 Instant Run 时,所以 Instant运行认为代码已更改(实际上该代码仅更改文件修改时间)并且每次我使用 Instant Run 都需要花费大量时间。(如果我将所有生成的代码复制到我的源文件并禁用 AA,Instant运行会非常快)所以现在我想在 AA 任务执行后编写一个任务,这就像我的手动方式来提高“即时运行”的时间
  • 您想减少构建项目的时间吗?
  • 是的,实际上我会这样做,首先我创建并添加一个新的源文件夹名称“AAgen”到项目中,并且在 build.gradle 中编写的代码应该可以帮助我比较生成的 AA代码与“AAgen”中的代码,然后只复制或替换不同的文件到“AAgen”文件夹,最后删除所有AA生成的代码。

标签: android gradle android-gradle-plugin build.gradle gradle-plugin


【解决方案1】:

如果您想向任务添加另一个动作,您可以使用doFirst() 前置,doLast() 附加到动作列表。

例如buildInfoDevDebugLoader.doFirst { println "I am the first action" }

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多