ラベル maven の投稿を表示しています。 すべての投稿を表示
ラベル maven の投稿を表示しています。 すべての投稿を表示

2011/04/30

MVN Tips : 標準ディレクトリ構造

Mavenでは標準となるディレクトリ構造が決まっています。
もちろん標準以外の構成を使用することもできますが、標準構成ならPOMの記述もシンプルになるので、可能な限りこの構成に合わせてください。

  • pom.xml
  • src
    • main
      • java
      • resources
      • webapp
    • test
      • java
      • resources
  • target  (svn:ignore)

これに加えて、下記のような開発者用リソースを決めておくと便利です。

  • local-env
    • resources (svn:ignore)
    • default

開発者が手元で変更した設定が誤ってコミットされないように、設定例をdefaultに入れておき、各開発者はそれをresourcesにコピーして使用するようにしています。

ソース

Maven関連まとめ

2011/04/26

MVN Tips : 安定したビルドと柔軟なビルド

あるMavenプロジェクトを何回ビルドしても同じ結果が得られることを、ビルドが安定していると呼びます。逆に、ビルドした時点で新しい成果物を取り込むビルドを柔軟なビルドと呼びます。

ビルドの安定性を決めるのが、バージョンの指定方法です。
  1. 特定バージョンを指定
    • 1.0
      • 同じバージョンが更新されることはないため、ビルドは安定します。
  2. バージョンのレンジ指定
    • [1.0,)
      • 1.0以上
      • 特定バージョン以降のすべてのバージョンアップを取り込みます。
    • [1.0,2.0)
      • 1.0以上、2.0未満
      • 特定バージョン以降のマイナーバージョンアップを取り込みます。
  3. SNAPSHOTバージョンを指定
    • 1.0-SNAPSHOT
      • SNAPSHOTバージョンは同一バージョンのまま更新されます。
ビルドの安定性と柔軟性はトレードオフの関係にあるため、臨機応変に使い分けてください。

2011/04/20

MVN Tips : MavenとNexusとJenkinsとSubversionの素敵な関係

Mavenをビルドツールとして使用する場合には、NexusとJenkinsを組み合わせることをお勧めします。僕はこの組み合わせに到達するまでMavenの便利さを過小評価していました。例えるなら、Javaを普通のエディタで書くのと、Java + eclipseぐらいに違います。

Nexus Repository Manager
Mavenのためのリポジトリマネージャ。社内成果物の管理だけでなく、社外リポジトリへのプロキシとして動作するためMavenビルドが非常に快適になります。

Jenkins
継続的インテグレーション(Continuous Integration)のためのツール。バージョン管理システムからの通知に応じてビルドを実行し、成果物をNexusに登録します。Maven専用のジョブタイプを利用すると、Mavenの依存関係に基づいて自動的に派生ビルドを実行してくれます。

Subversion(もしくは、他のバージョン管理システム)
Nexusに登録するのは各エンジニアではなく、かならずバージョン管理システムに登録されたコードを自動ビルドしたものにします。これにより、個人の環境に依存しない安定したビルド環境を実現できます。

最初のセットアップはちょっと面倒ですが、後が非常に楽になる素敵な組み合わせです。

Maven関連まとめ

MVN Tips : Mavenに入ればMavenに従え

Mavenでは、ソースの階層構造等の推奨構成が決まっており、その構成であれば設定を省略できるようになっています。また、構成だけでなく、「1つのプロジェクトからは原則として1つのプロダクトを生成する」等のMavenの哲学とでも呼ぶものが存在します。
この哲学は多くのエンジニアがたどり着いたベストプラクティスに基づいているため、できる限り従うことで後で楽をできます。

標準構成に基づくことで記述が簡単になるだけでなく、自分以外のエンジニアへの引き継ぎも非常に楽になります。もちろん、環境構築にはそれなりに苦労しますが、人のプロジェクトをビルドするために苦労する日々から解放されますよ。

僕の勤めるリプレックス社内のJavaプロジェクとはMaven標準に基づいているため、プロジェクトのビルド手順は下記のようになります。
1. 開発ツールインストール(eclipse,maven,subversion、1回だけ)
2. 社内Mavenレポジトリを登録(1回だけ)
3. プロジェクトをチェックアウト
4. ビルド
すべての依存関係はmavenによって解決され、必要なjarファイルが自動的にダウンロードされます。また、ソース、JavaDocも自動的にダウンロードされるため、ソースを見ながらのデバグも可能です。

TIpsと呼ぶには大げさかもしれませんが、Mavenを自分に合わせるのではなく、Mavenに自分を合わせましょう。

Maven関連まとめ