Intellij Gradle项目刷新执行什么命令

Cal*_*der 5 intellij-idea gradle

当您按下按钮使用 gradle 执行某些操作时,Intellij 会隐藏它运行的 gradle 命令。这使得找出问题所在变得极其困难。我单击“刷新”(不是刷新依赖项),它似乎触发了我所有的兄弟项目和我的项目来构建这是错误的。它绝对没有运行“gradle build”,因为如果它运行,它不会触发我的多项目构建中的所有同级项目。

小智 2

在 gradle 中单击“刷新”会显示如下日志:

2019-10-17 14:58:10,391 [9949323]   INFO - xecution.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: -Didea.sync.active=true -Didea.resolveSourceSetDependencies=true --init-script /tmp/ijinit.gradle
Run Code Online (Sandbox Code Playgroud)

这里 IDEA 使用 Gradle Tooling API 并使用gradle init 脚本(在我的机器上的 /tmp/ijinit.gradle 中)。该文件显示更多内容:

$ cat /tmp/ijinit.gradle

...imports etc...

initscript {
  dependencies {
    classpath files([...list of IDEA jars...])
  }
}

apply plugin: JetGradlePlugin

class JetGradlePlugin implements Plugin<Gradle> {
  void apply(Gradle gradle) {
    def processor = new RegistryProcessor()
    gradle.addProjectEvaluationListener(processor)
    def projectEvaluationIsNotCalledForIncludedBuilds = GradleVersion.current() >= GradleVersion.version("3.1") &&
                                                        GradleVersion.current() < GradleVersion.version("4.0")
    if (projectEvaluationIsNotCalledForIncludedBuilds) {
      gradle.rootProject {
        it.afterEvaluate {
          gradle.includedBuilds.each { included ->
            // included builds should be configured by now, so calling `configuredBuild` should be safe
            def toolingRegistry = (ToolingModelBuilderRegistry)included.configuredBuild.services.get(ToolingModelBuilderRegistry.class)
            processor.process(toolingRegistry)
          }
        }
      }
    }
  }
}
...other overrides...
Run Code Online (Sandbox Code Playgroud)

正如其他人提到的,包含的构建可以在 IDEA Gradle 选项卡中排除,但希望这能回答特定的标题问题。