目次へ

2006.05.31 株式会社四次元データ 鈴木 圭

2.3. プロジェクトの作成

Maven にはプロジェクトのスケルトン (雛形) を作成する機能があるので、新しくプロジェクトを作成するときは、その機能を利用するのが一般的です。

今回は最終的な成果物として JAR ファイルを作成するプロジェクトを作成します。また、プロジェクトの名前は「sample」とします。

プロジェクトを作成するには次のコマンドを実行します:

mvn archetype:create -DgroupId=com.example -DartifactId=sample

引数で指定している「archetype:create」はプロジェクトのスケルトンを作成するためのものです。 groupId にはプロジェクトのルートパッケージ名、artifactId にはプロジェクト名を指定します。

このコマンドの実行の裏では、プロジェクトのスケルトンを作成するプラグインによって処理が行われています。 また、mvn コマンドの「-Dkey=value」という形の引数は、システムプロパティを設定するためのものです。 このように、プラグインへのパラメータはシステムプロパティを介して渡すことができます。

プロジェクトの作成に成功すると、カレントディレクトリに sample というディレクトリが作成されていることが確認できます。

sample ディレクトリの内容を確認すると、以下のようになっていると思います:

sample
│  pom.xml
│
└─src
    ├─main
    │  └─java
    │      └─com
    │          └─example
    │                  App.java
    │
    └─test
        └─java
            └─com
                └─example
                        AppTest.java

この中に pom.xml というファイルがあることを確認できると思います。 pom.xml はプロジェクトに関する情報を持つ重要なファイルです。

また、成果物の作成に必要なファイルは全て src ディレクトリ以下に配置します。 src ディレクトリ以下は次のような構成になっています:

src/main/java Java ソースコード
src/test/java テスト用の Java ソースコード

Maven では標準のディレクトリ構成が決められており、今作成したプロジェクトは標準のディレクトリ構成に従ったものとなっています。

標準のディレクトリ構成を決めることで、一度その構成を理解すれば、 Maven を利用した他のプロジェクトのディレクトリ構成も理解したことになるというメリットが生まれます。 そのため、標準のディレクトリ構成とは異なる構成をとることも可能ですが、 特に理由が無い限り、標準のディレクトリ構成に従うことが推奨されます。

2.4. pom.xml について

pom.xml はプロジェクトに関する情報を持つ重要なファイルです。 例えば、プロジェクトのビルドに関する情報や、依存するライブラリの情報、プラグインの設定などが含まれます。

以下にプロジェクト作成直後の pom.xml の内容を示します:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>sample</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

project 要素以下の各要素が持つ意味は次の通りです:

modelVersion POM のバージョン。 特に変更する必要はありません。
groupId プロジェクトを一意に識別する名前。 プロジェクトのルートパッケージ名を指定するのが一般的です。
artifactId プロジェクトの成果物の名前。 作成する JAR や WAR, EAR ファイルなどの名前に使用されます。
packaging 作成する成果物のパッケージング・タイプ。 jar (デフォルト), war, ear などがあります。
version プロジェクトのバージョン。
name プロジェクトの表示名。 ドキュメントを作成するときなどに使用されます。
url プロジェクトのサイトの URL。 ドキュメントを作成するときなどに使用されます。
dependencies プロジェクトが依存するライブラリの情報。

先ほど、「pom.xml はプロジェクトに関する情報を持つ」と述べましたが、 pom.xml の内容を見ると、ソースコードの場所やクラスファイルの出力先など、重要であろう情報が記述されていません。 これは、pom.xml にはデフォルトの設定というものがあり、ここで記述されていないものは、デフォルトの値が適用されているためです。

今回は pom.xml を編集せずにそのまま使用しますが、実際の開発では、依存するライブラリの情報やプラグインの設定などを追加することになります(それらの方法については後述します)。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp