假设我的build.gradle
文件包含任务generateSources
,顾名思义,该任务会生成其他Java文件。确保在generateSources
:compileJava
之前执行compileJava.dependsOn generateSources
很容易。将项目导入Intellij Idea时,如何确保调用generateSources
?
答案 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)
答案 2 :(得分:0)
这可以通过id("org.jetbrains.gradle.plugin.idea-ext")
插件(https://github.com/JetBrains/gradle-idea-ext-plugin)完成。
请参阅Gradle源代码中的示例代码:https://github.com/gradle/gradle/blob/135fb4751faf2736c231636e8a2a92d47706a3b9/buildSrc/subprojects/ide/src/main/kotlin/org/gradle/gradlebuild/ide/IdePlugin.kt#L147