【问题标题】:IntelliJ: Specifying different groovyc version for source and test within same moduleIntelliJ:为同一模块中的源代码和测试指定不同的 groovyc 版本
【发布时间】:2012-08-25 15:26:13
【问题描述】:

我正在使用IntelliJ 11.1.3IvyIDEA Plugin for IntelliJSpock 0.5(取决于Groovy 1.8.4)和Groovy 1.5.6

我有一个 Maven Standard Directory Layout 之后的 IntelliJ 模块。输出是一个 WAR 文件。

在 IntelliJ 中构建此模块时,有什么方法可以告诉 IntelliJ 使用以下内容:

  • Groovy 1.5.6 编译 src/main/groovy
  • Groovy 1.8.4 编译 src/test/groovy

我需要这样做,因为实际的应用程序代码需要针对 Groovy 1.5.6 进行编译(长话短说:生成的 WAR 部署有一个 EAR,现在必须保留在 Groovy 1.5.6 上)。

当然,Test 目录不会与 WAR 一起部署。 Test 目录包含 Spock 测试。我正在使用 Spock 0.5,它需要 Groovy 1.8.x

ivy.xml

<dependency conf="compile->default" name="groovy-all" 
    org="org.codehaus.groovy" rev="1.5.6"/>

<dependency conf="test->default" name="groovy-all" 
    org="org.codehaus.groovy" rev="1.8.4"/>
<dependency conf="test->default" name="spock-core" 
    org="org.spockframework" rev="0.5-groovy-1.8"/>

我需要能够从 IntelliJ 运行测试。如果我从 IntelliJ 构建并尝试运行 Spock 测试,我会得到以下结果:

org.spockframework.runtime.InvalidSpecException: 
Specification 'org.myorg.test.ProcessCaseTest' was not compiled properly 
(Spock AST transform was not run); try to do a clean build
at org.spockframework.runtime.SpecUtil.checkIsSpec(SpecUtil.java:53)

如果我删除这一行:

<dependency conf="compile->default" name="groovy-all" 
    org="org.codehaus.groovy" rev="1.5.6"/>

然后我可以构建和运行 Spock 测试,但是我从我的模块中丢失了 Groovy。

我认为我需要做的是告诉 IntelliJ 使用一个版本的 Groovy 来编译应用程序代码,并使用另一个版本的 Groovy 来编译测试,但是我还没有找到一种方法来做到这一点。

如果有人能提供任何帮助或见解,我将不胜感激。非常感谢。

【问题讨论】:

    标签: java groovy intellij-idea ivy spock


    【解决方案1】:

    IDEA 遵循 Maven 依赖模型,其中 compile 依赖关系自动进入 test 类路径。您可以尝试对 IDEA 模块中的依赖项重新排序,以使 Groovy 1.8(其范围应为 test)位于 Groovy 1.5(其范围应为 compile)之前。无论如何,这是一件毛茸茸的事情。

    PS:我推荐使用 Spock 0.6。

    【讨论】:

    • 感谢您的精彩回答,彼得!你是对的,它是毛茸茸的。我按照您的建议对我们的 IDEA 模块中的依赖项进行了重新排序,并且成功了。我喜欢 Spock,它是一个很棒的测试框架,感觉很自然……我会研究 Spock 0.6,一旦我了解自 0.5 以来发生了什么变化,我可能会开始使用它。
    猜你喜欢
    • 2023-03-05
    • 2018-05-17
    • 1970-01-01
    • 2019-09-12
    • 2020-03-16
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    相关资源
    最近更新 更多