感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Maven2の勉強始めました(復習も兼ねて)

<スポンサーリンク>

ことば

女子を傲慢にするものはその美貌である。
私をひきつけるのは、夫人の美容ではなくして、その親切だ。
シェークスピア

昨日Maven1の本を一気に読んだので、今日は続けてMaven2を読む。

Mavenとは

Mavenが面倒を見てくれるのは、コンパイル、テスト、アーカイブの作成といった、ソースコードなどのインプットからプロジェクトの成果物を構築するために必要な各種の周辺作業。
Mavenのバージョン2.X系は2005年の夏にリリースされた。

AntとMavenのちがい

・Antは加算的アプローチ。Mavenは差分的アプローチ。
Antは何かをしたいときはbuild.xmlに処理手順を書く。
ソフトウェア開発プロジェクトのビルドプロセスは「コンパイル→テスト→アーカイブ作成」のようにだいたい手順が決まっている。
Mavenは標準的なビルド手順を定めて、その標準的な手順に従ったビルドプロセスをプラグインによって自動的に実行できるようにしている。
Mavenのアプローチは、ビルドプロセスというものホア大まかなステップレベルで見ると、プロジェクトによってそんなに変わらないものだという認識に基づいている。

・依存関係を自動解決する
Mavenは依存ソフトウェアの収集作業を自動化してくれる。

プロジェクトのひな形の準備

・ひな形の作成

mvn archetype:create -DgroupId=sample.app -DartifactId=app -Dversion=0.0.1

・コンパイル

mvn compile

・テスト

mvn test

・成果物の作成

mvn package

mvn packageを実行すると、targetフォルダにアーティファクトID-バージョン.jarといった成果物が生成される。
・成果物のリリース

mvn install

アーティファクト

ソースコードからコンパイル、ユニットテスト、統合テスト、アーカイブといった工程を経て作成されるプロジェクトの成果物であるファイルのこと。

・成果物になりえるファイルの形式(Mavenはすべての形式のファイルを生成できる)
プロジェクトから使われる共通ライブラリ→JARファイル
サーブレットコンテナ上で動作するWebアプリケーション→WAR
EJBなど含んだJ2EEアプリケーション→EAR

プロジェクトの名称、バージョン、依存するライブラリ等をメタデータという。
メタデータはPOM(Project Object Model)で定義される、

グループID,アーティファクトID,バージョンは3つセットで、Mavenが生成するアーティファクトを全インターネット上で一意に識別する。

リポジトリ

リモートリポジトリ・・・ネットワーク上にセットアップされたリポジトリ。デフォルトのリモートリポジトリのことをセントラルリポジトリともいう。
ローカルリポジトリ・・・リモートリポジトリのキャッシュとしての役割を果たす。

依存関係の依存関係を推移的依存関係と呼ぶが、Mavenは推移的依存関係も自動的に解決する。

読んだ本

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

感謝のプログラミング

今回で感謝のプログラミングは【318時間目】
10000時間まで、あと【9682時間】

(昨日読むだけの勉強をした分も含める)