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

时间:2018-01-12 01:12:03

标签: intellij-idea gradle

当你按下按钮用gradle做某事时,Intellij会隐藏它运行的gradle命令。这使得找出问题非常困难。我点击"刷新" (而不是REFRESH DEPENDENCIES),它似乎触发了我所有的兄弟项目和我的项目构建错误。它肯定没有运行" gradle build"因为如果确实如此,它不会触发我的多项目构建中的所有兄弟项目。

2 个答案:

答案 0 :(得分:0)

在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

在这里,IDEA正在使用Gradle Tooling API和gradle init script(在我的计算机上的/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...

正如其他人提到的那样,可以在“ IDEA Gradle”选项卡中排除包含的内部版本,但希望这可以回答特定的标题问题。

答案 1 :(得分:0)

如果使用的是Gradle的最新版本,则可以使用--refresh-dependencies选项。

./ gradlew构建--refresh-dependencies