カスタム検索

2009年5月19日火曜日

Grails 1.1.1 でプラグインリポジトリ(認証付き)を使ってみた

Grails1.1.1がリリースされた事もあり、自分プラグインリポジトリを試してみました。

1.1系になり、プラグイン周りが大幅に変わったのはコチラで詳しく解説されています。


では早速実践です!(環境はMacです)


まずはSubversion Clientを1.5系にします(SVNKitの部分で1.5以外はうまく動作しませんでした)
ココから探っていくと過去のバージョンもありましたのでそこから 1.5.6 を入れました。

次にSVNリポジトリを作成します。リポジトリ側のバージョンは1.5でなくてもOKです。(今回は 1.4.2 でテストしました)
サーバ側の設定は何もありません、中身も空で良いです。

開発環境orプロジェクトへリポジトリ設定を追加します。
開発環境に追加する場合は ~/.grails/settings.groovy ファイルへ、
プロジェクト毎に設定する場合はプロジェクトの grails-app/conf/BuildConfig.groovy ファイルへ以下の内容を記述します。

grails.plugin.repos.discovery.リポジトリ名称=SVN URL
grails.plugin.repos.distribution.リポジトリ名称=SVN URL

discovery は取得(list-pluginsやinstall-plugin)、
distribution はコミット(release-plugin)の設定です。

開発環境とプロジェクトの両方に同じリポジトリ名称が設定されている場合はプロジェクトに設定された方が優先されます。

SVNのURLは認証が無い場合はそのまま、http://svnurl/ と記述すればOKですが、今回はBasic認証を使います。
Basic認証を使う場合には https を使用する必要があります。

試しに https://svnurl/ だけ指定して list-plugins するとユーザ名とパスワードを聞かれます。
ですが、これ list-plugins 以外にも run-app 等毎回聞かれます、しかもhttpsのリポジトリが複数あると、すべてのパスワードを毎回聞かれてうっとおしいことこの上ないです。(しかもパスワード入力がマスクされないので丸見えです :p)

ユーザを聞かれないようにするには https://username:password@svnurl と入力しておきます。
ですがこれもパスワード丸見えなので、BuildConfig.groovy に書いておくとチームで使うには不便です。
(とりあえずチーム内で使うには各自の settings.groovy へ書いておくのが得策と思われます)

ここまで設定出来れば準備完了です。
適当な plugin を作成し、releaseしてみましょう。

grails create-plugin testPlugin
cd testPlugin
grails release-plugin -repository=リポジトリ名称

コミットメッセージ等を聞かれて、うまくいけばSVNへプロジェクトがコミットされます。
初releaseの場合はリポジトリに .plugin-meta/plugin-list.xml ファイルが作成されます。
この中にそのリポジトリ内のpluginの情報が記述されます。
ファイルがうまく作成されていたら以下のコマンドを実行して確認してみましょう。

grails list-plugins -repository=リポジトリ名称

先程releaseした testPlugin が表示されれば成功です。

ですが、今 release したローカルのファイルはsvnの管理下にいないので、次のバージョンをリリースするには、
一度アップされた plugin を checkout して、更新後、release-plugin する必要があります。
1回目だけはちょっと面倒です。

最後に通常のGrailsプロジェクトを作成し、insall-plugin 出来れば完璧です。

grails create-app test
cd test
grails install-plugin test-plugin

これでチーム開発をする時に plugin ファイルを共有する必要がなく、
application.properties に plugins.test-plugin=0.1 が記述されているだけで、ファイルがなければ run-app時に自動的にインストールしてくれます!

まだちょっと扱いが生な感じがするのですが機能としては十分使えそうです、プラグインもプロジェクトもスッキリさせましょう!

0 件のコメント: