Javaにおける開発インフラまわりのメモ
Javaで開発する場合に使う可能性があるツール類(おもにインフラまわり)をメモっておきます。テスト関係はあんまりないです。その辺はJavaにおける開発・Test(Unit/Web/負荷)環境のまとめ - よねのはてななどを参考に。
構成管理ツール
ツール名 | URL | 現行バージョン |
---|---|---|
Subversion | http://subversion.tigris.org/ | 1.6.3 |
さすがに今やこれは鉄板といってもいいでしょう。
Eclipseプラグインとしては僕はSubclipseを使っています。
Subversiveでもいいんでしょうけど以前試してみて不安定だったのでやめました(不安定だったのは違う原因かもしれないけどw)。
TortoiseSVNも必須ですね。
というのも例えばtrunkの下が以下のようになっている場合Subclipseだとexample-porject/build.xmlが取れないからね。svnコマンドでいいじゃんという突っ込みはありそうですが。:-)
example-porject/ | common/ | | | .project | .classpath | build.properties | build.xml | launcher/ | | | .project | .classpath | build.properties | build.xml web-app/ | | | .project | .classpath | build.properties | build.xml | build.properties build.xml こいつが上記3つのbuild.xmlを呼び出す。
バグトラッキングシステム
ツール名 | URL | 現行バージョン |
---|---|---|
Trac | http://trac.edgewall.org/ | 0.11.5 |
Redmine | http://www.redmine.org/ | 0.8.4 |
Mantis | http://www.mantisbt.org/ | 1.1.8 |
JIRA | http://www.atlassian.co.jp/software/jira/ | 3.13.4 |
TracはPythonベース。RedmineはRailsベース。使うDBそれぞれSQliteとMySQLが標準的だろう。そのためかTracの方がバックアップしやすいだろう。僕はTracを3年ほど使っていてとくに不満は無い。ただ小規模向きかなという気はする。Redmineは少し試してみたが多機能で大規模向きという感じ。標準でガントチャートもある。Tracとの違いで大きいのはマルチプロジェクト対応であることとチケットの親子関係を定義できることだろう。ここでいうプロジェクトはリポジトリの意味。TracはSubversionとセットなので1インスタンス1プロジェクトだが、Redmineは複数のリポジトリを扱える。インストールの手間はどっちも結構大変という印象がある。TracにはTracLightningという後述のHudsonやMaven等を含んだオールインワンパッケージがあるのでその点はいいかも。ごりごりカスタマイズするならTracかな。プラグインも豊富だし。
Redmineの参考URLとしてはこの辺かな。
継続的インテグレーション
ツール名 | URL | 現行バージョン |
---|---|---|
Hudson | https://hudson.dev.java.net/ | 1.317 |
CruiseControl | http://cruisecontrol.sourceforge.net/ | 2.8.2 |
ま、ほかにもあるけどこれはHudsonがいいとおもう。CruiseControlもいいが、セットアップの簡単さ、日本語化されている、プラグインが豊富という点でHudsonのほうがいいと思う。
開発者による記事も参考になる。
ビルド管理ツール
ツール名 | URL | 現行バージョン |
---|---|---|
Ant | http://ant.apache.org/ | 1.7.1 |
Maven | http://maven.apache.org/ | 2.2 |
CIするにはビルドを自動化しないといけないわけだが、まあ上記の2択だろう(Gantもあるようだがよく知らないのでw)。
AntはMavenに比べてシンプルでわかりやすいのだが、冗長になりやすく大規模プロジェクトになるとbuild.xml地獄になる危険性がある。Mavenはビルドを宣言的に書くので記述は少なくてすむ一方、わかりにくい。Mavenプラグインの品質もあまり良くないらしいので必要以上にいろいろやろうとするとハマりやすいだろう。スナップショットリポジトリが変わってビルドが通らなくなったことが有るので、インハウスのリポジトリも用意したほうがいいかもしれない。あと依存関係の解決などはMavenにまかせてパッケージングはAntでやるといいらしい。
Mavenの参考URLはこの辺り
インスペクションツール
ツール名 | URL | 現行バージョン |
---|---|---|
FindBugs | http://findbugs.sourceforge.net/ | 1.3.9 |
PMD | http://pmd.sourceforge.net/ | 4.2.5 |
CheckStyle | http://checkstyle.sourceforge.net/ | 5.0 |
まあ僕は仕事で商用の静的解析ツールを担当しているので上記3つ(商用ならJTest)はライバルなわけだ。一番メジャーなのはFindBugsだと思うが正直そんなにいいとは思わない。だって指摘されてもどう直せばいいかよくわからんのだw 玄人向けツールな気がする。
テスト管理ツール
ツール名 | URL | 現行バージョン |
---|---|---|
TestLink | http://testlink.org/wordpress/ | 1.8.3 |
おそらくこの分野はExcelとファイルサーバがもっとも活躍しているところ。言い換えるともっとも効率化が望まれている分野でもある。
TestLinkはPHPベースのWebアプリでDBはMySQLを使う。
Excelのインポートもできるみたいでよさげなのだが、慣れるまで時間かかりそう。Trac/Redmineの要件をベースにテストケースを作成し、バグを見つけたらTrac/Redmineに登録とかできたらよさげ。後半はできるようだが前半ができない模様。
TestLinkの参考URLとしてはこの辺かな。
コードレビューツール
ツール名 | URL | 現行バージョン |
---|---|---|
Peer Review Plugin | http://trac-hacks.org/wiki/PeerReviewPlugin | ? |
Review Board | http://www.review-board.org/ | 1.0 |
Peer Review PluginはTracプラグイン。diffが見れないのでちょっとつらいかも。Review BoardはDjangoベース。インストール大変、使い方がよくわからんw
統計ツール
ツール名 | URL | 現行バージョン |
---|---|---|
StatSVN | http://www.statsvn.org/ | 0.5.0 |
Subversionのコミットログをもとにステップ数やコミット数などの統計情報を表示するツール。結構面白い。金曜にバグを発生させるコミットが多い: プログラマの思索らしいのでプロジェクトの状況を判断する材料としては参考になるかも。