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
这里 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...
正如其他人提到的,包含的构建可以在 IDEA Gradle 选项卡中排除,但希望这能回答特定的标题问题。
| 归档时间: | 
 | 
| 查看次数: | 1977 次 | 
| 最近记录: |