倭マン's BLOG

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

Maven2/3

リモート・リポジトリに登録されていない Jar ファイルを使う

Maven2 で外部ライブラリ(以下、Jar ファイルと仮定します。)を使いたい場合、POM ファイルに依存性を付加すれば Maven2 が自動的にダウンロードして使用できるようにしてくれます。 ただし、そのライブラリが Maven2 のリモート・リポジトリに存在してい…

AspectJ プロジェクトの POM ファイル

前回 Maven2 主導で AspectJ プロジェクトを作成する方法を見ました。 しかし、この手順は結構面倒臭いので、チョットでも手間が省けるように、POM ファイルのテンプレートを載せておきます(ダウンロードはこちらから)。POM ファイルのテンプレート <project> <modelVersion>4.0.0</modelVersion></project>…

Maven2 主導で AspectJ プロジェクトを作成する

以前の記事で、Eclipse 上の AspectJ プロジェクトを Maven2 で扱えるようにする方法を見ました。しかし、外部ライブラリを使用する場合、POM ファイルによって依存性を管理できるといろいろ便利です。 なので、今回は Maven2 主導の AspectJ プロジェクト作…

Aspectj -- test-compile ゴールとテスト・コード内のアスペクトの織り込み

aspect-maven-plugin には前回まで見ていた「compile ゴール」の他に、「test-compile ゴール」が定義されています。 このゴールはテスト・コードに対して「コンパイル」と「織り込み」を行います。 「test-compile ゴール」に定義されているパラメータは、…

Aspectj -- AspectJ プロジェクト(Eclipse) → Maven2 プロジェクト

AspectJ を用いてアスペクト指向開発を行う場合、「Eclipse + AJDT」という環境が最も手軽かと思います。 今回は、この環境で作成した AspectJ プロジェクトを Maven2 プロジェクトとして認識されるようにする仕方を見ていきましょう。 これによって、AJDT …

Aspectj -- 設定可能なパラメータ 其ノ弐 ライブラリと weaving

今回は、Aspect が関連するライブラリの取り扱い方を見ていきます。 以下の説明で使う例を定義しておきます(下図参照): [MyProject]・・・現在開発中のプロジェクト [Library A]・・・Java クラスを含む(通常の)外部ライブラリ [Library B]・・・ Aspec…

Aspectj -- 設定可能なパラメータ 其ノ壱

今回は、aspect-maven-plugin に定義されている「compile ゴール」で設定できるパラメータを見ていきましょう。 全て紹介するのは面倒なので、独断と偏見で幾つか見繕って説明します(次回以降にも続く。 パラメータ一覧はこちら): encoding source, targe…

Aspectj -- 必要最小限の設定とフォルダ構造

「プロジェクト管理ツール」Maven2 で、AspectJ を使用するプロジェクトを扱う方法を見ていきましょう。POM ファイルに行う変更は aspectjrt への依存性を付加する コンパイル時に weaving*1 を行うようにする です。 また、ソース・コードの配置フォルダに…

Eclipse -- その他のゴールや設定

前々回、前回で、Eclipse プラグインの基本的な使い方を紹介しました。 今回は、その他のゴールや設定をご紹介。Eclipse プロジェクト用のファイルを削除する 前々回、コマンド「mvn eclipse:eclipse」によって Eclipse プロジェクトのための設定ファイルが…

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 …

Eclipse 上で Maven2 を使おう! 其ノ四 - パッケージング

Eclipse 上でのコーディングが終わったら、classファイル等をパッケージングする必要があります。パッケージングの種類は以前簡単に書きましたが、要は mvn package (もしくは mvn install )ってコマンドを実行すればいいってことでした*1。 この package …

Eclipse 上で Maven2 を使おう! 其ノ参 - ライブラリへの依存性を付け加える

Eclipse を使うなら、基本的には開発中(コーディング中)に Maven2 を使う必要はないかと思います。 コンパイル等は Eclipse に任せましょう*1。 テストをまとめて実行するってのは便利かと思いますが。 Eclipse 上で Maven2 のコマンドを実行する方法は次…

Eclipse 上で Maven2 を使おう! 其ノ弐 - 新規プロジェクトを作成

前回は m2eclipse をインストールしました。 今回は新規プロジェクトを作成する手順を見ていきます。 大まかな手順は以下の通り: 新規 Java プロジェクトを作成する POM ファイル(以下 pom.xml)を作成する ソース・フォルダを作成する 1. 新規 Java プロ…

Maven2 を使おう! への修正 其ノ弐

「Maven2 を使おう!」の記事で、「Eclipse に変数 M2_REPO を定義する」際に mvn eclipse:add-maven-repo -Declipse.workspace=《workspace へのパス》 を実行すると書きましたが、拙者の環境で試したところ、どーもうまくいかなかった。うまくいかなかった…

Eclipse 上で Maven2 を使おう!

前回に引き続き、今回は Eclipse 上で Maven2 を使うための Eclipse プラグイン、 Maven Integration for Eclipse(以下 m2eclipse) のインストール&使用方法を見ていきましょう。 Eclipse は既にインストールされているとします。♪Maven2 をインストール…

Maven2 を使おう! への修正

「Maven2 を使おう!(2):Maven2 を実際に使ってみよう」の記事で、Eclipse に変数「M2_REPO」を定義するってのが抜けてましたm(_ _)m。 Maven2 を使って、定義する方法はそちらの記事に載せておきました。あまり必要ないかと思いますが他の変数を定義するの…

Maven2 を使おう!(1):何が便利?

Maven2*1 は「プロジェクト管理ツール」と言われる。 でも、「管理」という語は、実際に何をするのかと聞かれても具体的によく分からないものの1つ*2。 なので、「これは Maven2 にしか出来ない」って機能をいくつか挙げておきましょう。 ♪デフォルトで周辺…

Maven2 を使おう!(3):若干のカスタマイズ

前回に書いたことで大体開発の管理は行えるんですが、拙者が行っている若干のカスタマイズを書いておきます。♪ソースファイルのバージョンとエンコーディング♪ 最近の Java 開発ではジェネリクスなどがサポートされた Java SE 5 かそれ以降のバージョンを使…

Maven2 を使おう!(2):Maven2 を実際に使ってみよう

今回は Maven2 を単独でインストールして、Eclipse と連携する方法をみていきましょう。 Eclipse 上で Maven2 を使うための Eclipse プラグイン(m2eclipse)もありますが、そちらは機会があれば・・・ということで。♪Maven2 をインストールする♪ Maven2 をイ…