Gradle + Intellij IDEA 13 错误

8

我想要使用Gradle 1.7、Jetty 9.2和IntelliJ IDEA 13设置一个简单的Web应用程序。

以下是我在教程中找到的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启动,Web应用程序可以在浏览器中使用。 但如果我更改了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任务框中单击刷新按钮(双蓝色旋转箭头),它是否可以解决问题? - javajon
不,仍然出现相同的错误: “Gradle 'grdl2' 项目刷新失败:超时等待…” - kassie
也许尝试删除项目文件夹中的.gradle文件夹? - Opal
你是否仍在使用1.7版本?Gradle v2.0刚刚发布,他们在发布说明中宣传了改进的IDE集成。即使您无法升级,也可以尝试一下看看2能否解决问题。还要确保Intellij在IDE --> 设置 --> Gradle -->“Gradle home:”下使用了预期的Gradle版本(那里还有一个“自动导入”复选框)。 - javajon
5个回答

4

删除锁定文件

sudo rm -f <lockfile>

结束指定进程

kill -9 <pid>

请再试一次

gradle jettyRun -PbuildProfile=<profile>

4

经过一些研究,我发现问题在于正确地终止Jetty。如果你通过IDEA工具栏上的“终止”按钮停止Jetty,则锁定仍然留在缓存文件中。因此,您需要通过jettyStop任务来停止Jetty。此外,您需要指定stopKeystopPort以成功执行任务。


1
这是一个已知问题,当从同一个build.gradle文件运行多个构建时会出现此问题,请参见https://issues.gradle.org/browse/GRADLE-2795
不确定IntelliJ是否允许,但一个可能的解决方法是使用命令行选项--gradle-user-home来指定不同的Gradle目录,缺点是它将再次下载所有依赖项到该目录中。
在该问题中还描述了其他解决方法,但我没有尝试过任何一种。

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

'jcenter' 必须保留!


2
请提供一个描述,解释为什么你认为这是一个解决方案。 - Trinimon

0

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

  1. 重新启动计算机。
  2. 进入项目文件夹并找到 .gradle 文件夹。
  3. 进入该文件夹并删除 cache.properties.lock 文件。
  4. 返回上一级目录,然后在 Windows 平台的用户中查找 .gradle 文件夹。
  5. 进入 caches 文件夹并查找 modules-2 文件夹,删除其中的 modules-2.lock 文件。
  6. 正常启动 Android Studio。

这就是我所做的,对我有效。也许当你强制关闭构建过程时会出现这种情况,因此没有其他进程可以再次使用它,直到您重新启动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接