Android Studio - 在SYNC之后执行的gradle任务

doo*_*eec 9 android gradle android-studio

项目与Gradle文件同步完成后,有没有办法执行一次gradle任务?

我试图将任务依赖设置为preBuild,正如我所见gradle:build,在执行Sync时会触发.但问题是依赖似乎不起作用,任务没有执行,我必须在每次同步后手动启动任务.

这基本上是我到目前为止所尝试的

apply plugin: 'com.android.library'
...

task myTask {
    ...
}
gradle.projectsEvaluated {
    preBuild.dependsOn(myTask)
}
Run Code Online (Sandbox Code Playgroud)

我也尝试将任务依赖设置为我看到的其他任务被触发(:generate {Something}),但这也没有成功.

我可以做些什么来强制每次同步后执行gradle任务?我正在使用Gradle 2.2.1 + Android Studio 1.0.2

doo*_*eec 12

最后,我设法在每个Sync事件上触发任务.显然gradle.projectsEvaluated,在同步时根本不执行,或者在build任务之后执行,因此解决方案是完全摆脱它

apply plugin: 'com.android.library'
...

task myTask {
    ...
}

preBuild.dependsOn(myTask)
Run Code Online (Sandbox Code Playgroud)


Bil*_*ill 6

在Gradle菜单中(通常位于Android Studio的右上角),有一个任务列表.通过右键单击任务,可以进行设置Execute After Sync.

在此输入图像描述

  • 这种漂亮方法的一个缺点是该标志未存储在VC支持的文件中。因此,不幸的是,它无法扩展到更大的开发团队。 (2认同)
  • 现在有一个针对我上面提到的限制的解决方案:/sf/answers/4289992661/ (2认同)

Ale*_*ohn 5

不久前 JetBrains扩展了他们的 idea gradle 插件,现在你可以写类似的东西

idea.project.settings {
  taskTriggers {
    afterSync tasks.getByName("myTask")
  }
}
Run Code Online (Sandbox Code Playgroud)

您必须应用该插件,例如

plugins {
  id "org.jetbrains.gradle.plugin.idea-ext" version "0.7"
}
Run Code Online (Sandbox Code Playgroud)