Gradle + Intellij IDEA 13 bug

时间:2014-07-08 14:25:39

标签: java intellij-idea gradle jetty

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

这里有一些典型的gradle构建配置行,可以在我使用的教程中找到:

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。 对于第一次运行一切正常,jetty启动,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

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

删除锁定文件

sudo rm -f <lockfile>

杀死pid

kill -9 <pid>

再试一次

gradle jettyRun -PbuildProfile=<profile>

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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
}
}

&#39; jcenter&#39;必须保持!

答案 4 :(得分:0)

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

  1. 重新启动计算机。
  2. 转到项目文件夹,找到.gradle文件夹。
  3. 进入并删除cache.properties.lock文件
  4. 退出,​​然后在Windows平台的用户中找到.gradle文件夹
  5. 进入caches文件夹并查找modules-2文件夹,删除里面的modules-2.lock文件。
  6. 正常启动Android Studio
  7. 这就是我所做的,它对我有用。 当您强制关闭构建过程时可能会发生这种情况,因此在重新引导之前,没有其他进程可以再次使用它。