leftovers...

about grails groovy

2.1.0.RC1とcloud-foundryプラグインの指定

いつも通りの本体バージョン更新をしてて上手く動かなかったので、、、、
もしかしたら、自分の環境だけかも。
でもまあ、他のプラグインにも同じ事が言えるのでブログろうと。。

若干説明すると、プラグインプラグインの依存を持っていて、そのプラグインからのプラグイン依存が見つからないとかで、よくわからんエラーがでるとかハマった時に、こうすれば良いよってお話。

プラグインの設定を、BuildConfig.groovyのpluginsで行い、対象のプラグイン定義DSLブロックの中にexclude又はexcludes(※複数の場合)を記述してプラグインの依存を除外するのです。ま、jarとかの依存管理も同じですが。

今回の例だとBuildConfig.groovyのpluginsの中に:

compile ':cloud-support:1.0.9'
compile(':cloud-foundry:1.2.1'){
    excludes 'cloud-support','release'
}

これで解決でつ。




と、まあ、結論から話し始めましたが、経緯を説明。

  • 既存プロジェクトを2.1.0.RC1に更新
  • grails cleanとかを実行
  • Failed to resolve dependenciesで、- org.grails.plugins:cloud-support:[1.0.7,)となる。

つか1.0.7は、スナップショットレポに1.0.7-SNAPSHOTがあるけど、リリースレポには存在しない。。。。
↑これだとinstall-pluginコマンドで、application.propertiesにプラグインが記述される方法だと、依存解決できなくて初心者が諦めるような流れになる。

  • とりま、http://grails.org/plugin/cloud-support を見たところ、0.9が最新なのでそれに調整しようと。
  • ふと、これって知らない人は知らないなと、ブログる事に。

と、まあ、こんな経緯です。

ivyを使わなくなって、mavenのみな状態になってから、バージョンの見方が変わったのかな??まあ、そこまでは追求してる時間がないので、たぶん他の人が教えてくれると期待してますぅ。



追記:2.1.0.RC1(きっとバグ)では、以下をrepositoriesブロックに追加が必要

grailsRepo "http://plugins.grails.org"