2014-01-27 41 views
7

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

这里是我遵循的步骤:

  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: Cannot compile Groovy files: no Groovy library is defined for module...

我可能失去了一些东西,因为我厌倦了试图半天不同的配置。

+0

向我们展示您的pom.xml – MariuszS

回答

13

对于完全Groovy项目尝试GMavenPlus

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

安装GMavenPlus IntelliJ Plugin IntelliJ不识别源目录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

+1

+1无法理解IntelliJ为何如此困难和不直观; 3小时只是为了得到groovy spock测试与java项目一起工作! :-D – raffian

2

有两个步骤,以固定(碎)项目:

  1. 更新的常规,所有依赖于2.2.1版本,我有安装在我的机器上。
  2. 在 “projectName.iml” 文件替换

订单条目类型= “文库” 导出= “” 范围= “TEST” 名称=“Maven的: org.codehaus.groovy:常规全: 2.2.1" 级=‘项目’

这一个:

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

这种情况是由两个因素造成的:我是新来的IDE和事实的东西きnda-sorta即使在您错误配置项目时也可以工作。我仍然认为这个Q & A可能对未来的某个人有用。

+2

嗯,你尝试右键点击*项目 - > Maven - >重新进入*?在这之后IntellIJ为你做这个:)手动编辑* .iml文件不需要,不推荐。其他简单的选项是通过“删除现有配置并重新导入”再次打开项目。 – MariuszS

+0

有用的信息。 p.s.在我编辑答案后,堆栈不显示它的一部分:( –

0

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

上DIR右键 - >标记目录为 - >测试源根

0

对我来说,解决方案是特定的文件夹/模块中打开一个.groovy作为文件,然后想法给了一点弹出显示未配置Groovy SDK。然后我点击配置 - >确定和瞧。