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時間ぐらいだったけどすんごい勉強になりました。
ではまた。