IntelliJ + Groovy + Spock:模块未定义Groovy库

7

我一直在尝试在IntelliJ IDEA中创建一个具有Spock测试的Groovy项目。

以下是我遵循的步骤:

  1. 创建Groovy项目并添加Maven支持。
  2. 添加Spock依赖项和插件。 我使用的POM与此非常相似: https://github.com/mariuszs/java-spock-test-sample/blob/master/pom.xml
  3. 由于存在冲突的Groovy依赖项,我从“模块设置 ->库”中删除了Groovy 2.2库。这使我能够运行测试。
  4. 我在“src / main”中创建了一个Groovy类..但是当我尝试运行它时,我收到以下错误:

Groovyc:无法编译Groovy文件:未为模块定义Groovy库...

我可能错过了什么,因为我已经试了半天不同的配置。

4个回答

13

要完全使用Groovy项目,请尝试GMavenPlus

示例项目:https://github.com/mariuszs/groovy-maven-sample

安装GMavenPlus IntelliJ PluginIntelliJ无法识别源目录 src/main/groovy ,请按照以下步骤从项目设置->模块窗口手动配置:

groovy source code

配置

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.gmavenplus</groupId>
        <artifactId>gmavenplus-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.4.4</version>
    </dependency>
    <dependency>
        <groupId>org.spockframework</groupId>
        <artifactId>spock-core</artifactId>
        <version>1.0-groovy-2.4</version>
        <scope>test</scope>
    </dependency>     
  </dependencies>
</project>

1
快速解决方案 (y) :) - linuxeasy
2
+1 无法理解为什么IntelliJ让这变得如此困难和不直观;花了3个小时才能使Groovy Spock测试与Java项目一起工作! :-D - raffian

2
有两个步骤可以修复(损坏的)项目:
  1. 将groovy-all依赖更新到我机器上安装的版本2.2.1。
  2. 在“projectName.iml”文件中,用以下内容替换

orderEntry type="library" exported="" scope="TEST" name="Maven: org.codehaus.groovy:groovy-all:2.2.1" level="project"

就是这样:

<orderEntry type="library" name="groovy-2.2.1" level="application" />

这种情况是由两个因素引起的:我对IDE不熟悉,而且即使你错误配置项目,事情也有点像工作。我仍然认为这个Q&A可能对将来的某个人有用。

2
嗯,你试过右键单击 Project -> Maven -> Reimport 吗?这样IntellIJ会为您完成 :) 不需要手动编辑 *.iml 文件,也不建议这样做。另一个简单的选项是使用“删除现有配置并重新导入”再次打开项目。 - MariuszS
了解这些会很有帮助。 - Daniil Shevelev

1
最近我遇到了“无法编译Groovy文件:未为模块定义Groovy库”的问题。我需要在IntelliJ中将我的Groovy测试目录标记为“测试源根目录”。 右键单击目录-->标记目录为-->测试源根目录

0
对我来说,解决方案是打开特定文件夹/模块中的.groovy文件,然后IDEA会弹出一个小窗口,显示Groovy SDK未配置。然后我点击配置->确定,就完成了。

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