倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Maven2/3

Eclipse -- Eclipse 上での設定

前回 Maven2 プロジェクトを Eclipse 上へ読み込んで開発できるようにしました。 今回は、それに関連する Eclipse 側の設定等を見ていきます。Eclipse 側から変数「M2_REPO」を設定する Eclipse 上で Maven2 のローカル・リポジトリに保存されているライブラ…

Eclipse -- Maven2 プロジェクトを Eclipse プロジェクトへ

Maven2 は「プロジェクト管理ツール」なので、実際に開発を行う際には他の IDE を使用するのが普通です。 ここでは Maven2 プロジェクトを Eclipse 上に読み込んで開発が出来るようにする、Eclipse プラグインの使い方を見ていきましょう。変数「M2_REPO」の…

Archetype -- 独自の archetype を作成する 其ノ参

今回は、独自の archetype に含めるサンプル・ファイルの書き方を見ていきましょう。常に同じ内容のファイルを生成するなら話は簡単で、その内容のファイルを適当なフォルダに配置するだけです。 しかし、独自の archetype を使用してプロジェクト・テンプレ…

Archetype -- 独自の archetype を作成する 其ノ弐

今回は前回に続き、独自の archetype の作成の仕方を見ていきます。前回の「Archetype 作成プロジェクト」のテンプレートに対して行う変更は概ね以下の3つです: 「Archetype 生成プロジェクト」のPOM ファイル 「archetype-resources」フォルダ下のフォルダ…

Archetype -- 独自の archetype を作成する 其ノ壱

今回は、archetype プラグインを使って、独自のarchetype を作成する方法を見てみましょう。独自のarchetype を作成して使用できるようにする大まかな手順は次の通りです: 「Archetype 生成プロジェクト」を新規に作成する 独自のプロジェクト・テンプレー…

Archetype -- プロジェクト・テンプレート Site, Site-simple

site, site-simple は Web サイトを作成するためのプロジェクト・テンプレートだそうです。「src/site」フォルダの作成 通常、サイトに関連するコード(ファイル)は「src/site」フォルダに置くことになっています。 site (site-simple) テンプレートは、こ…

Archetype -- プロジェクト・テンプレート Quickstart, Mojo

今回は、幾つかのプロジェクト・テンプレートについて、そのフォルダ構造や POM を見てみます。Quickstart quickstart は、最も典型的なプロジェクト・テンプレートです。 テンプレートの概要は以下の通り: ソースコードを配置する「src/main/java」フォル…

Archetype -- プロジェクト・テンプレートのフォルダ構造

今回は、前回の最後に少し言及した、プロジェクト・テンプレート(archetypeArtifactId で指定する)の幾つかを取り上げて、プロジェクト生成時に作成されるフォルダ構造やファイルを見てみましょう。ここで取り上げる archetypeArtifactId は maven-archety…

Archetype -- Maven2 プロジェクトの新規作成

Archetype プラグインは Maven2 によって管理可能なプロジェクトのテンプレートを作成するプラグインです。 Maven2 を使う際に最も最初に(意識して)使うプラグインでしょう。普通そんなに頻繁にプロジェクトを作成したりしないので、余り使い方を覚える必…

Surefire -- テストをスキップする

通常、プロジェクトの成果物は事前に組まれたテストを通ったものでなければならないので、プロジェクトのビルドを行う際には必ずテストをすべきです。 ただし、コーディング中に行うテストであったり、その他何らかの理由があって*1ビルド時にテストを飛ばし…

Compiler -- コンパイル・オプションを指定する

Maven2 を使う際、Compiler プラグインは殆ど意識せずに使用されています。 ただし、「Generics」や「拡張 for 文」を使用するためには、コンパイルの際にソースのバージョンを指定しなくてはいけません。 てなわけで、今回は、コンパイルの際にオプションを…

Assembly -- assembly の名前を変えてみよう!

前回、実行可能 Jar ファイルの作成の仕方を見ました。しかしこれだけでは、作成された assembly の名前に必ず "-jar-with-dependencies.jar" という拡張子(?)が付いてしまって、チョット不格好な感じがします。 なので、今回は assembly の名前を変更する方…

Assembly -- 実行可能 Jar ファイルを作成する

今回は assembly として「実行可能な Jar ファイル」が作成されるようにしてみましょう。POM ファイルの設定 新しく追加する要素は <configuration> 要素下の <archive> 要素です。 <project> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0</version> <build> <plugins> <plugin> <artifactId>…</artifactid></plugin></plugins></build></project></archive></configuration>

Assembly -- ビルドと同時に assembly を作成する

今回は、Maven2 を用いてビルドを行う際に、自動的に assembly が生成されるようにします。もう少し具体的に。 assembly を作成するのは謂わばパッケージングなので、package フェーズが実行されたときに一緒に assembly が作成されるようにします。POM ファ…

Assembly -- 既にビルドされているプロジェクトから assembly を作成する

今回は、既にビルドされているプロジェクトから assembly を作成する方法を見ていきます。 やり方は簡単。 POM ファイルに設定を書く コマンド「mvn assembly:assembly」を実行して assembly を作成する だけです。 もちろん、POM ファイルの設定は最初に1度…

Assembly -- 必要なものを全てパッケージング!

Maven2 を使ってプロジェクト管理をすると、必要なライブラリなどは POM ファイルに依存性を書けば自動的にダウンロードしてくれます。 これは非常に便利なんですが、自分の作成したアプリケーションをイザ公開 and/or 配布しようとしたとき、そのアプリケー…

POM ファイルを書こう! 其ノ七 - POM ファイルの集約とマルチプロジェクト機能

今回は POM ファイルの集約(Aggregation)を見ていきましょう(一覧)。どんなときに使う? POM ファイルの集約によって、大きなプロジェクトを複数のモジュールに分割して開発を行えるマルチプロジェクト機能を使うことが出来ます。個々のモジュールはそれ…

POM ファイルを書こう! 其ノ六 - POM ファイルの継承

今回は POM ファイルが「Project Object Model」であることの意味の1つ、POM ファイルの継承(Inheritance)を見ていきましょう(一覧)。どんなときに使う? POM ファイルの継承によって、(通常のオブジェクト指向設計にあるように)複数の POM ファイルに…

POM ファイルを書こう! 其ノ伍- 依存性のカスタマイズ

前回書いた "optional" な依存性や以前の記事に書いた POM ファイルの書き間違いのために、ライブラリの依存関係をカスタマイズしようとすると結構 POM ファイルがごちゃごちゃしてきます。Maven2 でライブラリの依存関係を管理するには <dependencyManagement> 要素を用いるのが正</dependencymanagement>…

POM ファイルを書こう! 其ノ四 - Optional Dependency

今回は "optional" な依存性について見ていきましょう(一覧)。どんな時に使う? 他のライブラリへの依存性には、以前書いた「依存性のスコープ」とは別に、その依存性が "optional" かどうかを設定することが出来ます。 これは、対象となっているライブラ…

dom4j を使うための POM ファイル

前回、Maven2 上で dom4j が依存するライブラリを見ました。 今回は、具体的に POM ファイルを書いてみましょう(一覧)。ここでは、以下の条件 対象となる Java 事項環境は Java SE 1.4 以降(すなわち xml-api は依存性に入れない) XPath を使う(すなわ…

dom4j の依存関係

今回は、Maven2 の POM ファイルを基に、dom4j-1.6.1(以下、dom4j)が依存している他のライブラリを見ていきましょう(一覧)。Maven2 にはライブラリの依存関係に対してスコープを定義できるんでした→。 以下では dom4j の POM ファイルに定義されてる依存…

commons-logging 1.1 の依存性

「m2 プロジェクトで commons-logging を使う」のところで取り上げた commons-logging 1.1。log4j を強制的にダウンロードするのはまだ分からなくもないけど*1、logkit や avalon-framework、果てには servlet-api まで強制的にダウンロードするのはおかしい…

commons-logging 1.1 の依存性

「m2 プロジェクトで commons-logging を使う」のところで取り上げた commons-logging 1.1。log4j を強制的にダウンロードするのはまだ分からなくもないけど*1、logkit や avalon-framework、果てには servlet-api まで強制的にダウンロードするのはおかしい…

「Maven2 プロジェクトで commons-logging を使う」への追記

前回への追記。 Maven2 プロジェクトで、commons-logging も log4j も最新バージョンで使いたい!って方へ。(1) log4j.properties というプロパティ・ファイルを以下の内容で作成(log4j manual から拝借): # Set root logger level to DEBUG and its only…

Maven2 プロジェクトで commons-logging を使う

前回 commons-logging の基礎的な使い方を見ました。で、Maven2 プロジェクトで実際に使ってみました。 POM ファイルは以下の通り: <project> ... <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> </dependencies> </project> このプロジェクトで、次のようなテスト・…

POM ファイルを書こう! 其ノ参 - 依存性の推移

依存性の推移 今回は Maven2 の POM ファイルで指定した依存性の推移を考えましょう(一覧)。 公式にはこちらを参照のこと。依存性の推移とは、間接的に依存関係があるライブラリ*1に対して、どのような依存関係でそれを取り込むかってことです。 取り込む…

POM ファイルを書こう! 其ノ弐 - 依存性の追加

今回は Maven2 プロジェクトに対して、他のライブラリへの依存関係を付加する仕方を見ていきます(一覧)。以下で例として仕様するライブラリの groupId, artifactId, version を示しておきます: groupId artifactId version 備考 commons-logging commons-…

POM ファイルを書こう! 其ノ壱 - POM ファイルの基本

前回までで、Maven2 のインストール方法や使い方を見てきました。 次は POM ファイル(以下、pom.xml)の書き方、カスタマイズの仕方を見ていきます*1(一覧)。ちなみに “POM”とは Project Object Model の略で、プロジェクトのオブジェクト・モデル(説明…

Maven Eclipse Plugin vs. Maven Integration for Eclipse

Maven Eclipse Plugin (以下、Eclipse プラグイン)とMaven Integration for Eclipse (以下、m2eclipse)は、どちらも Maven2 と Eclipse を連携させるツール。 とはいっても、もちろんこれら2つのツールに根本的な違いがある: Eclipse プラグインは Maven2 …