Antに変わるビルドツールMaven2の解説です。速い、簡単が売りです。詳細については、下記の資料を参照してください。
以下のサイトからダウンロードできます。
$ M2_HOME=/usr/local/maven-2.0 $ PATH=${PATH}:${M2_HOME}/bin
$ mvn archetype:create -DgroupId=org.ultimania.sample \ -DartifactId=sample
パラメータ | 説明 |
groupId | パッケージ名 |
artifactId | モジュール名 |
packaging | パッケージ形式(pom,war,ear,jar) |
例えば、jarを指定すると、次のようなディレクトリ、ファイルが生成されます。
+sample +pom.xml +src +main +java | +org | +ultimania | +sample | +App.java +test +org +ultimania +sample +AppTest.java
$ m2 archetype:create -DgroupId=org.ultimania.sample \ -DartifactId=sample \ -DarchetypeArtifactId=maven-archetype-webapp
ディレクトリ構成は、下記の通り
+sample/ +pom.xml +src/ +main/ +java/ Javaクラス +webapp/ JSP/web.xml等 | +WEB-INF/ | +web.xml +resources/ プロパティファイル、DTD、XML等
javaディレクトリは作成されないので、自分で作成する必要あり。
packageコマンドを利用してwar、jarを生成する。
$ mvn package
Mavenリポジトリで配布されていないjarをインストールするには、次のようにする。
$mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
例えば、次のような感じ。
$mvn install:install-file -Dfile=ejb3-persistence.jar -DgroupId=ejb3persistenceapi \ -DartifactId=ejb3-persistence-api -Dversion=3.0 -Dpackaging=jar
パッケージでzip等を利用したい場合は、assembly.xmlを記述する。
ファイルをリポジトリにアップロードするには、pom.xmlに次のように記述します。
<distributionManagement> <repository> <id>my-repository</id> <url>scp://tidus.ultimania.org/maven/repository</url> </repository> </distributionManagement>
また、~/.m2/settings.xmlに次のようにサーバの設定を記述します(Windowsの場合、デフォルトではC:\Documents and Settings\<ユーザ名>\.m2/settings.xmlになります)
<?xml version='1.0' encoding='utf-8' ?> <settings> <servers> <server> <id>my-repository</id> <username>tidus</username> <password>パスワード</password> </server> </servers> </settings>
次のように実行するとアップロードされます。
$ mvn deploy
servlet-api.jarやejb.jar等、コンパイル時には利用したいが、配布時には含めたくないjarファイルがある場合は、scopeにprovidedを指定する。
<dependencies> <dependency> <groupId>tomcat</groupId> <artifactId>servlet-api</artifactId> <version>5.5.16</version> <scope>provided</scope> </dependency> </dependencies>
プロキシを利用する場合は、~/.m2/settings.xmlに下記のような設定を記述する。
<?xml version="1.0" encoding="utf-8" ?> <settings> <proxies> <proxy> <active/> <protocol>http</protocol> <username>toraneko</username> <password>mypasswd</password> <port>8080</port> <host>proxy.yourcompany.com</host> <id/> </proxy> </proxies> </settings>