時々、「全く同じgroovy scriptなのにあるマシンでだけ 起動に失敗する」ことがあります。 error messageはcaseによりますが、例えば直近では以下のようなものでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
要するに「guava-19.0.jarのdownloadに失敗した」と。
~/.groovy/grapes/com.google.guava/guava/
を見ると、
確かに他のlibrariesのようにjars
directoryがありませんし、
当然jar fileもありません。
じゃぁっていうんで、自分でguava-19.0.jar
を落としてきて、
jars/
作ってその下に置いても、同じ結果です。
Groovyが悪いのかJavaが悪いのかGrapeが悪いのか設定が悪いのか
versionが悪いのか、何なのか全然分かりません。
普通に動くマシンでのJava/Groovyとversionを合わせてもダメ、
Grapeする各libraryのversionを上げてもダメ、
Guava 19.0を明示的に@Grab
に入れてもダメ、
Groovy - Grab - download failedを見て~/.groovy
以下や~/.groovy/grapes
を削除してもダメ、
と途方に暮れました。
いつもは面倒なので諦めて、
その動くマシンでやっていつのですけれども、
今回は粘って原因究明してみました。
結局、以下のどちらかの方法で立ち上がるようになりました。
~/.groovy/grapes/com.google.guava/guava/jars
ではなく~/.groovy/grapes/com.google.guava/guava/bundles
にして、その下に落としてきたguava-19.0.jar
を置く- 他の多くのlibrariesと同様に
~/.groovy/grapes/com.google.guava/guava/jars
に落としてきたguava-19.0.jar
を置き、~/.groovy/grapes/com.google.guava/guava/ivy-19.0.xml
の<publications>
下の<artifact name="guava" type="bundle" ext="jar" conf="master"/>
のtype
attributeをbundle
からjar
にする
上手く行っていたマシンでは、
~/.groovy/grapes/com.google.guava/guava/bundles
が出来ており、
その下にguava-19.0.jar
もフツーにありました。
上手く行かないマシンではなぜbundles
が出来ないのか、は未だ不明ですが、
取り敢えず前に進める方法がわかったので記しています。
あぁ、あと、このようにGrapeに失敗すると、
~/.groovy/grapes/
以下にresolved-caller-all-caller-working73.properties
とresolved-caller-all-caller-working73.xml
といったfilesが澱のように溜まっていくので、都度削除した方がいいです。