【问题标题】:Gradle + Intellij IDEA 13 bugGradle + Intellij IDEA 13 错误
【发布时间】:2014-07-08 14:25:38
【问题描述】:

我正在尝试使用 gradle 1.7、jetty 9.2 和 intellij IDEA 13 设置简单的 webapp。

以下是我正在使用的教程中的一些典型的 gradle build 配置行:

apply plugin: 'jetty'

sourceCompatibility = 1.5
version = '1.1'

repositories {
    mavenCentral()
}

dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    // other dependencies
}

在 IDEA 中启动的配置是 Edit Configurations...->Add->Gradle,任务是 jettyRun。 第一次运行一切正常,码头启动,webapp 在浏览器中可用。 但是如果我更改gradle.build 文件中的某些内容并重新运行任务,则会出现以下错误:

A problem occurred configuring root project 'gr3'.
Could not open buildscript class cache for build file 'D:\Work\priv\gr3\build.gradle' (C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript).

Timeout waiting to lock buildscript class cache for build file 'D:\Work\priv\gr3\build.gradle' (C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript). It is currently in use by another Gradle instance.
     Owner PID: unknown
     Our PID: 11948
     Owner Operation: unknown
     Our operation: 
     Lock file: C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript\cache.properties.lock

继续工作的唯一方法是重新启动 IDE

有什么想法吗?

【问题讨论】:

  • 如果您单击 IntelliJ Gradle 任务框中的刷新按钮(双蓝色旋转箭头),是否可以解决问题?
  • 不,同样的错误出现:Gradle 'grdl2' project refresh failed: Timeout waiting...
  • 也许尝试删除项目文件夹中的.gradle 文件夹?
  • 您是否绑定到 1.7 版? Gradle v2.0 刚刚发布,他们在发布说明中介绍了改进的 IDE 集成。就算不能升级,也不妨试试看2能不能修复。还要确保 intellij 在 IDE --> Setting --> Gradle --> "Gradle home:" 下使用预期的 gradle 版本(那里也有一个 'auto-import' 复选框)。

标签: java intellij-idea gradle jetty


【解决方案1】:

经过一些研究,我发现问题在于正确终止码头。如果您通过 IDEA 工具栏上的“终止”按钮停止 jetty,则锁定仍保留在缓存文件上。所以你需要通过jettyStop 任务停止码头。您还需要指定stopKeystopPort 才能成功执行任务。

【讨论】:

    【解决方案2】:

    删除锁定文件

    sudo rm -f <lockfile>
    

    杀死 pid

    kill -9 <pid>
    

    再试一次

    gradle jettyRun -PbuildProfile=<profile>
    

    【讨论】:

      【解决方案3】:

      当从同一个 build.gradle 文件运行多个构建时,这是一个已知问题,请参阅 https://issues.gradle.org/browse/GRADLE-2795

      不确定 IntelliJ 是否允许这样做,但一种可能的解决方法是使用命令行选项 --gradle-user-home 指定不同的 Gradle 目录,缺点是它会将所有依赖项再次下载到此目录中。

      该问题中描述了其他解决方法,尽管我没有尝试任何一种。

      【讨论】:

        【解决方案4】:
        buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:1.1.0'
        
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
        }
        

        'jcenter'必须保留!

        【讨论】:

        • 请提供说明,解释为什么您认为这是一个解决方案。
        【解决方案5】:

        我不知道如何从技术上解决这个问题,但你可以手动完成。

        1. 重新启动计算机。
        2. 转到您的项目文件夹并找到.gradle 文件夹。
        3. 进去删除cache.properties.lock文件
        4. 出来然后在Windows平台的用户中找到.gradle文件夹
        5. 进入caches文件夹,找到modules-2文件夹,删除里面的modules-2.lock文件。
        6. 正常启动您的 Android Studio

        这就是我所做的,它对我有用。 当您强制关闭构建过程时可能会发生这种情况,因此在您重新启动之前没有其他进程可以再次使用它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-06-04
          • 2014-01-30
          • 2013-12-21
          • 1970-01-01
          • 1970-01-01
          • 2023-03-22
          • 2013-12-23
          • 1970-01-01
          相关资源
          最近更新 更多