と思って backpaper0さんち を横目で見ながら GroovyConsole 立ち上げてやってみた。
groovy> @Grab('org.spockframework:spock-core:0.5-groovy-1.7') groovy> import spock.lang.* groovy> class HelloSpec extends Specification { groovy> } Exception thrown 2011/07/21 21:23:59 org.codehaus.groovy.runtime.StackTraceUtils sanitize 警告: Sanitizing stacktrace: org.spockframework.util.IncompatibleVersionsError: The Spock compiler plugin could not run because Spock 0.5.0-groovy-1.7 is not compatible with Groovy 1.8.0. For more information, see http://versioninfo.spockframework.org Spock location: file:/C:/Users/irof/.groovy/grapes/org.spockframework/spock-core/jars/spock-core-0.5-groovy-1.7.jar Groovy location: file:/C:/opt/groovy-1.8.0/lib/groovy-1.8.0.jar
……?
…あー。そりゃそうだよねー。うんうん。
自分 Groovy1.8.0 使ってるのに Grab してるのは 1.7 です。コピペする前に気付け私。深く考えずに 1.7 を 1.8 に変えて、GroovyConsole再起動*1して再度実行。
groovy> @Grab('org.spockframework:spock-core:0.5-groovy-1.8') groovy> import spock.lang.* groovy> class HelloSpec extends Specification { groovy> } 1 compilation error: Exception thrown 2011/07/21 21:25:54 org.codehaus.groovy.runtime.StackTraceUtils sanitize 警告: Sanitizing stacktrace: java.lang.RuntimeException: Error grabbing Grapes -- [unresolved dependency: org.codehaus.groovy#groovy-all;1.8.0-beta-3-SNAPSHOT: not found]
……?
……えーと。「Groovy1.8.0-beta-3-SNAPSHOTが無い」ですか。要らないよ…。見たままなんですけど、Spock0.5-groovy-1.8 の依存してる groovy-all が 1.8.0-beta-3-SNAPSHOT で、これがなんか無いらしい。前あったんですかね。よくわかりませんがー、とりあえず jar でも作って自分でクラスパスに追加するとかすれば使えるんでしょうけど、そんな面倒な事はしたくない。
何とか Grab でしたい。
したいならやれば良い。なのでやります。
${HOME}/.groovy/grapes/org.spockframework/spock-core が Grab でダウンロードされてきた spock が入ってるディレクトリ。私の環境*2だとこんな感じになります。この中の ivy-0.5-groovy-1.8.xml が Grab した時に見るやつです。
PS> ls ディレクトリ: C:\Users\irof\.groovy\grapes\org.spockframework\spock-core Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/07/21 21:04 jars -a--- 2010/12/11 2:42 5644 ivy-0.5-groovy-1.7.xml -a--- 2010/12/11 2:42 2292 ivy-0.5-groovy-1.7.xml.original -a--- 2010/12/11 2:46 5622 ivy-0.5-groovy-1.8.xml -a--- 2010/12/11 2:46 2292 ivy-0.5-groovy-1.8.xml.original -a--- 2011/07/21 21:23 808 ivydata-0.5-groovy-1.7.properties -a--- 2011/07/21 21:50 808 ivydata-0.5-groovy-1.8.properties
やりたい事だけなら次の一行を消せば達成出来そうなのですが、なんか気持ち悪いなら groovy-1.8.0-beta-3-SNAPSHOT って入ってるの全部(3行)消すとか、消しちゃうのはなんか嫌のなら -beta-3-SNAPSHOT だけ消して 1.8.0 は残しても。
<dependency org="org.codehaus.groovy" name="groovy-all" rev="1.8.0-beta-3-SNAPSHOT" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
編集して保存して、再度実行。
groovy> @Grab('org.spockframework:spock-core:0.5-groovy-1.8') groovy> import spock.lang.* groovy> class HelloSpec extends Specification { groovy> } JUnit 4 Runner, Tests: 0, Failures: 0, Time: 94 Result: org.junit.runner.Result@3d949a87
出来た!
これで fumokmmさんち のもいけました。
アプローチが間違ってる気はしないでもないんだけど、気にしません。spockのGitHub 見た感じだと 0.6 なら大丈夫っぽいので、しばし待ちーですかね。
プログラミングGROOVYに書いてましたよ?
@Grab('org.spockframework:spock-core:0.5-groovy-1.8') @GrabExclude('org.codehaus.groovy:groovy-all') import spock.lang.* class HelloSpec extends Specification { }
こんなブログ読んでないで買った方が良いよ!
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (155件) を見る