NetBeansのMavenプラグインを試す

NetBeansの次期バージョンから標準ではいるといわれてるMavenプラグイン。現在の正式版である6.5でもメニューから「ツール」「プラグイン」からMavenを選択してインストールを押すだけですぐに使える。


今日はいろいろと試行錯誤していてなんとなくMavenがどういうものか、利点はどういうのがあるのかがわかってきた。

pomと呼ばれるファイルに使用するライブラリをかいておけば、ビルドしたりテスト、実行などをすると自動でネットからライブラリとその依存ファイルを自動でダウンロードをして、コンパイルされる。これはたしかに便利だ。でも、ライブラリをひとつひとつアーティファクトIDとか調べて導入していくのはさすがにたるい…。

そこでNetBeansMavenプラグイン機能で全部補完してもらうことに。

おかげで、適当にどこからかもって来たソースコードを適当に貼り付け補完するだけで、ライブラリを適当に引っ張ってコンパイル、実行が出来るようになってしまった(もちろん、そのライブラリの概要やバージョンはある程度把握する必要があるけど)。わはは、らくちんらくちん。

それでいて、NetBeansの便利な機能が比較的ごっそり抜け落ちるというのもわかった。例えば通常のプロジェクト(Ant)だとライブラリの設定がすでに整っていてすぐに開発が可能な状態になることが多い。それがMavenだとそうはいかない。自分ですべて組み立てないとサーブレットすら開発が出来ないのだ。これはNetBeansを使いこなしていた人ほど驚くところだと思う。サーブレットの開発をするのにどういったライブラリが必要なのか把握してる人は少ないと思う。

それにテンプレートがよろしくない。ソースのコードがNetBeans6.0以降はUTF8をデフォにもってきてるはずなのにプラットフォームエンコーディングをもってくる。ソースバージョンやJ2EEバージョンは1.3(!)とか指定してくる。「使用状況を検索」から追加した場合はscopeの設定が出来ないのもダメかな。pom.xmlを開かないといけないことになる。


当たり前だけど、パッケージングが同じようになるため、Eclipseとでソースの共有が出来る。NetBeansEclipseのプロジェクトを読み込んだり同期を取ったりすることが出来るのだが、Maven使ったほうが楽かもしれない。

行き来が出来るということはEntityの作成とか各種便利なウィザードをNetBeansで使用してコードは使い慣れたEclipseで書くといったこともありだと思う。NetBeansを雛形を作ってくれるウィザードやツールの化け物としてオプション的に扱えばいいのだ。



ちなみに、Antの化け物といったNetBeansであるが、MavenモードになるとAntは一切姿を消す。コンパイルやらテストやらすべてMavenが管理をする。それでいてメニューやショートカットは通常の状態と変わらない。それらのゴール設定は自動で生成されている。もちろん、アクションのカスタマイズも出来るし、カスタムしたゴールは保存することも出来る。

保存したカスタムゴールはプロジェクトを右クリックで選択可能。履歴から実行することも出来て便利。


もはやMavenなしでそのプロジェクトは一切コンパイルも出来ない。ちょっと前までAntなしでは生きていけなかったのにこの極端な変わりようといったら…NetBeans恐ろしい子

・・・いや、違うかな。元々Antできっちり動くように作られていたからMavenベースの差し替えも容易になってると考えるべきか。

あとはライブラリの追加や補完時のほうからの検索だとクラスの大文字小文字を区別するのがちょっと面倒かも。今の状態だとMavenリポジトリブラウザを開いて追加するのが一番楽っぽい。このウインドウは「ウインドウ」「その他」「Mavenリポジトリブラウザ」で表示することが出来る。Mavenを使う場合は出しっぱなしにしておいたほうがいいようだ。


そういやリポジトリの追加ウインドウの一番上が文字化けしてる。

例えばSeasarリポジトリを追加したい場合はどうすればよいのだろうか。リポジトリURLと索引URLと2箇所が必要なようだが、その情報はどこに…。