Groovy和IntelliJ - 编译代码

时间:2013-06-13 10:24:46

标签: groovy intellij-idea

我在项目中有IntelliJ 12和一些groovy代码(以及一堆java代码)。

在intelliJ中,我可以看到A类导入了一些groovy代码,并且我还包含了具有该代码的库。

但是,虽然包本身是一种颜色(对于导入),导入的实际类是红色,这意味着某种问题。将鼠标悬停在它上面显示没有问题。

当我运行“make”或“重建项目”时,问题就出现了 - 我得到了

Groovyc: unable to resolve class com.blah.blah.blah.A

我该如何解决这个问题?

目前,我的项目设置如下:

在(项目结构 - >项目设置 - >图书馆)的“图书馆”下,我有:

包含所有groovy代码的jar文件 带有所有groovy代码的src jar文件

在“模块”部分,我有 - 好吧,我不知道该怎么称呼它,列没有标记 - 库名称来自与src和类文件关联的libraries部分,而且勾选旁边的“导出”按钮。

顺便说一下,在intelliJ中打开类永远不会显示源代码,因为包含源代码让我觉得很奇怪。

还有什么我需要做的吗?

我已经解决了这个问题,但如果有人知道为什么groovy不能出现在“资源模式”列表中并想要一个upvote,那就做吧?

4 个答案:

答案 0 :(得分:22)

哦,对。

我从!?*.groovy内容中的条目列表中删除了File : Settings -> Compiler -> Resource Patterns条目。

如果“使用外部构建”为此开启或关闭似乎并不重要,但!?*.groovy;进入不能在那里。

我想知道为什么有人知道为什么?

答案 1 :(得分:4)

我遇到了同样的问题,不得不添加框架支持并将Groovy添加到项目中以解决此问题。

我使用gradle创建了项目。

答案 2 :(得分:3)

我刚收到你的问题,因为我遇到了类似的问题。我的问题是我能够将我的IntelliJ 12项目中的groovy代码转换为编译确定,但是当我尝试在IDE中运行单元测试时,它没有正确连接。

经过一番调查后,我发现项目中已经设置了groovy和logback库,这些库都可以在项目的Maven构建的 runtime 阶段中使用,但这导致它们不存在可在测试阶段使用。为了解决这个问题,我最终在runtime下手动将groovy-all和logback库范围从provided更新为File->Project Structure->Modules->Dependencies。这允许我在IDE中编译和测试,同时包括Groovy模块和Java模块。

也许你的项目中有类似的东西?

答案 3 :(得分:1)

六年后,我在搜索结果顶部附近也遇到了这个问题。

在我的项目中,我的Unable to load class 'groovy.text.SimpleTemplateEngine'问题实际上是由于Codenarc问题引起的。我可以通过在build.gradle中添加以下内容来解决该问题:

// codenarc version issue work-around
configurations.codenarc {
    resolutionStrategy.eachDependency { DependencyResolveDetails d ->
        if (d.requested.group == 'org.codehaus.groovy') {
            d.useVersion '2.4.7'
        }
    }
}