2011年1月15日土曜日

[netbeans][maven] 恐る恐るのmaven体験

mavenを使えない現場で、Javaプロジェクトのディレクトリ構造を
mavenライクにしてやって来ましたが、リアルmavenを使って
ハッとしたことのメモ。

発端
--------------------------------------------------
Antの<script>タスクを調べていました。<script>タスクは、
AntでAnt以外のスクリプトを書けるようにするやつ。
JavaScript以外の言語を特に何も調達せずに使えるかなと。
beanshellってのが使えるとAntの中にJavaを書けていいなと。

BeanShell
http://www.beanshell.org/

<script>タスクはant-apache-bsf.jarが実体なので、それをAntのlibで探していたら、
ant-apache-bsf.jar の隣に ant-apache-bsf.pom があるじゃないですか。

Antがmavenで作られていた!?

類似
・タワーレコードの店員がAmazonで実は買っている。
・エコカーの開発者がガソリン車で通勤している。

mavenってWEB-INFとか出て来るWebアプリケーションの開発の
イメージ(勝手な)がありました。そうではないらしい。使ってみますかさっそく。

調達と設定
--------------------------------------------------
NetBeans 6.9.1
Apache Maven 3.0.2

NetBeans ≫ ツール ≫ オプション ≫ Maven
外部 Maven ホーム:J:\Program Files\apache-maven-3.0.2
ローカルリポジトリ:J:\java\repository

※Cドライブに空きがないので。

プロジェクトを作る
--------------------------------------------------
NetBeans ≫ ファイル ≫ 新規プロジェクト ≫ Maven ≫ Mavenプロジェクト

Maven原型:Mavenクイックスタート原型(1.0)

あとは適当に。。

デフォルトでいきなり困ったこと
--------------------------------------------------
・コンパイルのレベルが1.3だった。
プロジェクトプロパティ ≫ ソース
ソース/バイナリ形式:1.6

・JUnitが3系でできあがっちゃった。
pomを書き換え。
---
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.2</version>
    <scope>test</scope>
  </dependency>
---

いまさら知ったこと(ぽかーん)
--------------------------------------------------
・必要なライブラリが勝手にダウンロードされるのは知っていたけど、
mavenのプラグインも同じく。そこは意識できていないから
ネットからクローズした自社リポジトリを作るのは難易度高そう。

・今までプロパティファイルをデフォルトパッケージに置いていたけど違った。
×:src/main/java/log4j.properties
○:src/main/resources/log4j.properties
確かにプロパティファイルはJavaではないです。

・targetディレクトリがsvn無視だった。コミット対象外。

・targetディレクトリにclassesとtest-classesが出来ていた。
binじゃないのね。

・targetディレクトリにビルドしたjarが置かれていた。
distじゃないのね。

・ローカルリポジトリにjarやらpomやら一式がコピーされていた。
そっか。他のプロジェクトが参照するjarになり得るものね。
targetがsvn無視なのは、こういうことか。

・ビルドしたらテストケースが動いた。テストスィート書いてないのに。
これうれしい。

・ビルドするjarの名前はpomに記述した情報から自動的に付けられる。
プロジェクト名.jar ではない。これうれしい。今はリネームしている。

・pomにバージョンを書ける。これうれしい。
今はインストーラを作るAntに書いている。

・pomもリリース対象。これうれしい。
このjar何モノ?ってね。情報が欲しい。依存ライブラリとかバージョンとか。



※ファイル名・ディレクトリ名がグレーなヤツがsvn無視です。
※nb-configuration.xmlを無視にしたのは私。IDE依存な情報なので除外に。

1時間ぐらいだったけどすんごい勉強になりました。
ではまた。

0 件のコメント:

コメントを投稿