[[scala]]
*目次 [#fe74efeb]
#contents
*Mavenの特徴 [#r52b37db]
-Mavenはプロジェクトのビルドに必要な各種ライブラリを、ユーザ毎に固有のローカルリポジトリにダウンロードして利用します。
-mavenは開発作業を行う際、標準ディレクトリ構成を持っています。
-Maven では使用するコマンドやビルドステップが統一されています。
-一度 Maven プロジェクトのビルド方法を理解してしまえば、他の Maven プロジェクトのビルド方法も習得したことになります。
統一感はプラグインによってもたらされデフォルトで用意されていますが、SCALA言語などをつかいたい場合は、別途プラグインを指定する必要があります。
--例:
 -DremoteRepositories=http://scala-tools.org/repo-releases

--コンパイル
 mvn compile
--テスト
 mvn test
--Javadoc の作成
 mvn javadoc:javadoc
実行すると、target/javadoc ディレクトリに Javadoc が作成されます。
--サイトの作成
 mvn site
---src/site/site.xml に記述しますが、このファイルが無い場合はデフォルトの設定でサイトが作成されます。
--JAR ファイルの作成
 mvn package
--ローカルリポジトリへのインストール
 mvn install
--リモートリポジトリへの配備
 mvn deploy
---リモートリポジトリに配備するには、事前にリモートリポジトリの情報を pom.xml に記述しておく必要があります。
---リモートリポジトリの情報は、project/distributionManagement 要素の入れ子として repository 要素を追加します。 
---リモートリポジトリの種類
 project/repositories/repository => ライブラリを取得するためのリモートリポジトリ。
 project/pluginRepositories/pluginRepository => プラグインを取得するためのリモートリポジトリ。
 project/distributionManagement/repository => プロジェクトを配布するためのリモートリポジトリ。


---repository の子要素には id (リポジトリの識別子), name (リポジトリの名前), url (リポジトリの場所を示す URL) などが指定可能です。
--プロジェクトのクリーン
 mvn clean

-Mavenはプロジェクトの標準の雛型生成のプラグインをダウンロードしてプロジェクトを生成します。

*Mavenの所感 [#w02cd69c]
プロジェクトのよくあるメンテナンス的な処理を一般化した感じです。

*まとまっているURL [#u645a66f]

**Maven2のTipsを集めるWiki - CookBook [#x783e879]

http://wiki.fdiary.net/maven2/?CookBook

*インストール [#z4795c64]
ダウンロードは下記から

http://maven.apache.org/download.html

*骨格のみの最小限プロジェクトを作成 [#t88d1738]
-例
 mvn archetype:create -DgroupId=com.example -DartifactId=sample
-archetype:create
プロジェクトのスケルトンを作成するコマンド
-groupId
プロジェクトのルートパッケージ名
-artifactId
プロジェクト名
**システムプロパティを設定 [#e7cad39e]
mvn コマンドの「-Dkey=value」という形の引数は、システムプロパティを設定するためのものです。

*pom.xml [#ida6d6eb]
プロジェクトのビルドに関する情報や、依存するライブラリの情報、プラグインの設定などが含まれます。 

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

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

-pom.xml にはデフォルトの設定というものがあり、ここで記述されていないものは、デフォルトの値が適用されます。

*groupId, artifactId, version に指定する値の調べ方 [#ee99f13e]
リモートリポジトリと呼ばれるアドレスにアクセスします。
デフォルトは
 http://repo1.maven.org/maven2
です。 ここにはSCALA言語はありません。
-リモートリポジトリに登録されていないライブラリは、手作業でローカルリポジトリにインストールしなければなりません。
--手作業でローカルリポジトリにインストール
 mvn install:install-file -Dfile=<path-to-file>
                         -DgroupId=<group-id>
                         -DartifactId=<artifact-id>
                         -Dversion=<version>
                         -Dpackaging=<packaging>
-このとき、file パラメータにはインストールするライブラリのパスを指定します。
-groupId と artifactId, version には適当な値を指定します。
-packaging にはそのライブラリのパッケージングの種類 (大抵は「jar」) を指定します。

*プラグインの設定方法 [#u06db33c]
**mvn コマンドを実行するときにパラメータを渡す方法 [#v4e9933f]
mvn コマンドの「-D」オプションでシステムプロパティを設定することができます
**pom.xml にプラグインの設定を記述する方法 [#obc10d38]
 <project ...>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>プラグインの groupId</groupId>
        <artifactId>プラグインの artifactId</artifactId>
        <version>プラグインのバージョン</version>
        <configuration>
          プラグインに渡すパラメータ
        </configuration>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
 </project>

*scalaのプラグインをさがしてみる [#wf3e93b0]
-URL
 http://scala-tools.org/repo-releases/org/scala-tools/maven-scala-plugin/

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS