redmineとMylynを連携させる

MylynというのはEclipseのタスク管理用のプラグインなんだけど、こいつとプロジェクト管理ツールを連動させると開発環境の中でタスクが管理できて便利なのである。

Redmine – HowTo Mylyn – Redmine
tracやBugzillaなどでは専用のconnectorなるものも用意されているが、残念ながらredmineには今のところ専用のConnectorが存在するわけではなく、Mylyn Incubator にある、Mylyn Connector: Web Templates を使う。

この Web Templates ではチケット一覧のURLを指定するとHTMLのソースに対して正規表現を適応していチケット一覧を作成してくれる代物のようだ。ただそれ以外のチケットの新規作成やコメントの更新についてはただ新規チケットWebページに飛ばされるのでmylynの恩恵を受けることはできない。(ただ内部ブラウザで開くだけになる)
ちなみにorg.eclipse.ltk.core.refactoring_3.4.2.r342_v20081028-0800.jar が満たせないとかどーとか怒られてMylyn Connector: Web Templatesがうまくインストールできずに困っていたのがMylynを Ganymede 更新サイト > コラボレーション・ツール
入れるとバージョンが違ってうまくいかないようだ。どうもEclipse 3.4 用 Mylynから入れないといけないっぽい。前者バージョンが3.0.5で後者が3.1.1になっている。これ、はまるよ。

1) ヘルプ -> ソフトウェア更新 > 使用可能なソフトウェア > サイトの管理 > で下記を有効にする
http://download.eclipse.org/tools/mylyn/update/e3.4
2) ヘルプ -> ソフトウェア更新 > Eclipse 3.4用 Mylyn( http://download.eclipse.org/tools/mylyn/update/e3.4 )の下記を選択しインストール
Mylyn ブリッジ: Eclipse IDE ( Mylyn Bridge: Eclipse IDE )
Mylyn フォーカス UI ( Mylyn Foucused UI )
Mylyn タスク・リスト ( Mylyn Task List )
で3.1.1のMylynが入る。

Web Templates は
1) ヘルプ -> ソフトウェア更新 > 使用可能なソフトウェア > サイトの管理 > で下記を追加する
http://download.eclipse.org/tools/mylyn/update/incubator
2) Mylyn Incubator ( http://download.eclipse.org/tools/mylyn/update/incubator ) の下記を選択しインストール
Mylyn Incubator > Mylyn コネクター: Web Templates
で入れられる。

あとはビューのタスク・リポジトリーを開いて、リポジトリを追加する。コネクターにWeb Templatesを選択して、remineのページを参考に設定を入れる。

自分の場合はremineをサブディレクトリで運用しているため
クエリー・パターン(P)を

<td class="subject">.*?<a href="/redmine/issues/show/(\d+)">(.+?)</a></td>

というようにしてリンクのところを少し変る必要があった。今後redmineの出力するhtmlもどうなるかわからないので実際に出力されているhtmlからクエリパターンを作ったほうが確実かもしれん。

Eclipseのビューのタスクリストではいくつもクエリが作成できる。remineのデフォルトの設定だと全プロジェクトのチケット一覧になってしまうが、プロジェクトごとにチケット一覧を取得するには、
クエリー・リクエスト URL(Q): ${serverUrl}/projects/foo/issues
とかにすると良いと思われる。(fooのところがproject名)
逆に新規タスクURL(N):${serverUrl}/projects/foo/issues/newでプロジェクト依存になってしまう。正直プロジェクト単位でタスク・リポジトリをmylynに作るのもだるいので複数プロジェクトを使っている場合は、チケットの新規登録をmylyn上でやらずにwebでやった方が良いかもしれない
tracと比べると新規登録もそうだけど、コメントを追加するときにブラウザでページ開いたりするんでやっぱ微妙といえば微妙。専用のコネクタが欲しいところである。