mavenのプロジェクトのバージョン設定に悩んだ

mavenのプロジェクトのバージョン指定に悩んだ。
結局デフォルトが良かったという結論になった。

そもそもの話は、snapshotも通常ビルドもpomの変更なしにやれたら楽かもというおおざっぱな思いつき。

考えたことその1

profileタグを使って、snap-shotとprodのプロパティを作ろう。デフォルトを本番にすればうまくいくんじゃないか。こんな感じでversionをかく。
${hoge.version}${hoge.type}

その1結果

依存ライブラリとバージョン合わせないんだったら上手くいく。
依存ライブラリがあるときはやんない方がいい。dependenciesで${version}としていると、m2eclipseが取ってくるのはデフォルト指定してある方のライブラリになってしまう。mavenでビルドするときには、指定した方をとってきてくれる。あとなんか冗長。

考えたことその2

hoge.typeをprofileで指定するのではなく、コマンドライン上から-Dhoge.typeとしてしまう。

その2結果

問題の依存ライブラリの問題が解決せず。
デフォルトが指定されていない分、こちらだと依存がエラー表示されてします。「hoge${hoge.type}なんてバージョンはないよ。」と言われる。
見た目はその1よりいいけど、pomがエラーってたら実装どころじゃないので却下。


結果、seasermavenリポジトリとかを見たりして、普通にversionに指定するのが一番シンプルで誰が見てもわかりやすいということがよーくわかった。

mavenっていろいろできるけど、できるだけシンプルに保つってことが一番いいのかもしれないと思った。