【问题标题】:IntelliJ + Groovy + Spock: no Groovy library is defined for moduleIntelliJ + Groovy + Spock:没有为模块定义 Groovy 库
【发布时间】:2014-02-18 19:43:58
【问题描述】:

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

以下是我遵循的步骤:

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

Groovyc: Cannot compile Groovy files: no Groovy library is defined for module...

我可能错过了一些东西,因为我厌倦了半天尝试不同的配置。

【问题讨论】:

    标签: maven groovy intellij-idea spock


    【解决方案1】:

    为完全groovy项目尝试GMavenPlus

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

    安装GMavenPlus IntelliJ PluginIntelliJ 无法识别源目录src/main/groovy,请在项目设置 -> 模块窗口中手动配置,如下所示:

    配置

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

    【讨论】:

    • 快速解决方案(y):) span>
    • +1 无法理解为什么 IntelliJ 让这变得如此困难和不直观; 3 小时只是为了让 groovy spock 测试与 java 项目一起工作! :-D
    【解决方案2】:

    修复(损坏的)项目有两个步骤:

    1. 将 groovy-all 依赖项更新到我已安装在我的机器上的版本 2.2.1。
    2. 在“projectName.iml”文件中替换

    orderEntry type="library" 导出="" 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 将来可能对某人有用。

    【讨论】:

    • 嗯,您是否尝试右键单击 Project -> Maven -> Reimport?在此 IntellIJ 为您执行此操作之后:) 不需要也不推荐手动编辑 *.iml 文件。其他简单的选项是使用“删除现有配置并重新导入”再次打开项目
    • 很高兴知道。 p.s.在我编辑答案后,堆栈没有显示它的一部分:(
    【解决方案3】:

    我最近遇到了“无法编译 Groovy 文件:没有为模块定义 Groovy 库”问题。我需要在 IntelliJ 中将我的 groovy 测试目录标记为“Test Sources Root”。

    右击 dir --> Mark Directory as --> Test Sources Root

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        相关资源
        最近更新 更多