如何在Intellij Idea中的项目导入期间执行gradle任务

时间:2018-08-03 13:39:27

标签: gradle intellij-idea

假设我的build.gradle文件包含任务generateSources,顾名思义,该任务会生成其他Java文件。确保在generateSourcescompileJava之前执行compileJava.dependsOn generateSources很容易。将项目导入Intellij Idea时,如何确保调用generateSources

3 个答案:

答案 0 :(得分:2)

要详细说明@ vladimir-sitnikov的答案:我在我的根项目中添加了idea-ext插件:

apply plugin: 'org.jetbrains.gradle.plugin.idea-ext'

// ...

buildscript {
  dependencies {
    classpath "org.jetbrains.gradle.plugin.idea-ext:org.jetbrains.gradle.plugin.idea-ext.gradle.plugin:0.7"
  }
}

因为没有这些,我无法在子项目中使用它,但是现在它的工作方式如下:

idea.project.settings.taskTriggers {
  beforeSync tasks.getByName("generateSources")
}

只是没有将插件添加到子项目中。

请注意:该插件的文档种类有限,但在“ DSL spec v. 0.2”中有明确说明

  • beforeSync-在每个Gradle项目同步之前。 在首次导入时将不会执行

没有尝试过,但是它可以与现有项目一起使用。

答案 1 :(得分:1)

您可以在Gradle工具窗口中设置任务:在同步之前执行

enter image description here

答案 2 :(得分:0)