java - 想法 "Groovyc: unable to resolve class"- 在命令行上工作

标签 java groovy intellij-idea gradle spock

我在 Intellij Idea 中有一个 gradle 项目,其中包含两个模块:

foo-core
    |--src
    |   |--main
    |   |   |--java
    |--build.gradle
foo-test
    |--src
    |   |--test
    |   |   |--groovy
    |--build.gradle
build.gradle
settings.gradle

foo-test 包含一个 spock 测试,它应该测试来自 foo-core 的类。当我尝试从 IntelliJ Idea 运行 foo-test 中的测试时,出现以下错误:

Groovyc: unable to resolve class ...

但是当我使用 gradle :foo-test:test 从命令行运行它们时,一切正常。

这是我的顶层 settings.gradle:

include ':foo-core', ':foo-test'

这是来自 foo-test 的 build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
}

apply plugin: 'groovy'

sourceCompatibility = 1.7

repositories {
    mavenCentral()
}

dependencies {
    compile project(':foo-core')
    compile "org.codehaus.groovy:groovy-all:2.2.1"
    compile "com.google.inject:guice:3.0"

    testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

foo-test的项目依赖在Idea中是正确的。当我“刷新所有 Gradle 项目”时,任何更改的依赖项都会正确导入。

我已经尝试清理 Idea 中的所有缓存。

为什么我可以在命令行中运行gradle测试,但不能在IntelliJ Idea中编译它们?

更新:评论中问题的回答
想法版本 13

我在 Idea 中创建了一个 Android Gradle 项目,并通过创建目录+gradle 文件并将它们添加到顶级“settings.gradle”中来添加更多模块。然后我在 Idea 中做了一个“刷新所有 Gradle 项目”。我不使用 gradle idea 插件。

Idea 识别源目录和测试目录。所有项目设置似乎都已正确导入 Idea(来自 gradle)。我可以在另一个 java 项目 (foo-ui) 中使用来自 foo-core 的 java 类,但不能在 groovy 文件中使用它们。

仅在 IntelliJ 中编译是行不通的。完全重建也不起作用。即使是“刷新所有 Gradle 项目”也会产生 Groovyc 错误。

此外,当我只有两个模块(foo-uifoo-test)时测试已经工作,但在我将一些类移到新模块后停止工作模块(foo-core)。

更新 2:我现在已经更新到 Idea 13.0.1。我还尝试关闭项目,删除所有 .iml 文件和“构建”目录并再次导入。两者均无效。

最佳答案

这实际上是 IntelliJ Idea 的一个错误:http://youtrack.jetbrains.com/issue/IDEA-117676

IntelliJ Idea 13.0.2 和 Gradle 1.9 一切正常。

关于java - 想法 "Groovyc: unable to resolve class"- 在命令行上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649903/

相关文章:

java - Grails - 卸载 Tomcat 时出现问题 - 无法删除 catalina-ant.jar

java - 错误 "Mapping (RESOURCE) not found : HibernateExposed/Person.hbm.xml"

java - INTELLIJ IDEA 错误 : "Can' t start Git:/usr/bin/git Probably the path to Git executable is not valid. 修复它。”如何修复?

java - 如何使用 Java Google Drive API 上传文件

java - 加载远程 Groovy 脚本

java - Bukkit 插件无法正常工作

带有可选参数的 Groovy 方法

java - 在 Tomcat 上运行 JavaMail

java - HQL不提取空字段的结果

java - 优化Sql查询以合并两个表?