1

、、(依存する)、およびIntelliJ 11.1.3を使用しています。IvyIDEA Plugin for IntelliJSpock 0.5Groovy 1.8.4Groovy 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 Tests が含まれています。Spock 0.5 を使用しています。Groovy 1.8.x

アイビー.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 Test を実行しようとすると、次の結果が得られます。

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 Tests をビルドして実行できますが、モジュールから Groovy を失います。

私がする必要があるのは、あるバージョンの Groovy を使用してアプリケーション コードをコンパイルし、別のバージョンの Groovy を使用してテストをコンパイルするように IntelliJ に指示することだと思いますが、これを行う方法を見つけることができませんでした。

誰かが提供できる助けや洞察に非常に感謝しています。どうもありがとうございました。

4

1 に答える 1

3

compileIDEAは、依存関係が自動的にtestクラスパスに到達するMaven依存関係モデルに従います。試すことができるのは、IDEAモジュールの依存関係を並べ替えて、Groovy 1.8(スコープが必要test)がGroovy 1.5(スコープが必要)よりも前になるようにすることcompileです。とにかく、それは毛深い事件です。

PS:Spock0.6の使用をお勧めします。

于 2012-08-30T21:57:37.010 に答える