2014/05/07

maven 入門

mvn archetype:generate
->generate project in Interactive mode
・アーキタイプを指定する
=>
デフォルトが203(org.apache.maven.archetypes:maven-archetype-quickstart)になっているので、それを選んでみる
・versionを指定する
・groupIdを指定する
==>これは、何をやっている?
シンプルなクラスつくてくれた。。。。
ーー>test1を作る!

★Mavenでは「リポジトリー」という場所でアーカイブ(jarファイルやソースファイル等)を保管しておき、Mavenで管理された各アプリケーションではそれを参照する。
リポジトリーには「リモートリポジトリー」と「ローカルリポジトリー」がある。
リモートリポジトリーはインターネット上で公開されているリポジトリーで、ローカルリポジトリーは自分のマシン上に(自動的に)構築されたリポジトリー。
Mavenではpom.xmlにアプリケーションが依存(使用)するライブラリーを記述する。
Mavenのコマンドを実行すると、その依存関係に従ってリモートリポジトリーからライブラリー(アーカイブ)をダウンロードしてローカルリポジトリーに格納する。
そして、各アプリケーションはローカルリポジトリー内のファイルを参照して処理を行う。
(例えばローカルリポジトリー内のjarファイルをクラスパスに追加してアプリケーションをコンパイルしたり実行したりする)
==ー>リポジトリー?

★Mavenでは、mvnコマンドのオプションとして「ゴール」を指定して実行する
mvn ゴール 例:clean/test/install:install-file
「プラグイン名:」でプラグイン特有のゴールを指定できる。
http://maven.apache.org/plugins/index.html
いろいろできようね。。
全体像をつかまない。。。。


★プロジェクトをビルドする
cd test1
mvn package
==>bulid,compile,run testClass,
テスト結果が作成される、jarファイルも作成された!!
いろいろやってくれありがとうございます!
※packageはgoalではなく、phaseである。
プロジェクトのlifeCycleでいろんなphaseがある。package前のphaseは全て実行される。
(package?jarファイルを作成すること?)
validate
compile
test
package
intergration-test
verfify
install
deploy
clean
site
------
phaseの下goalがあるの感じ。ディフォルトのgoalもある!


★pom.xml
・下記の座標でプロジェクトを管理する
groupId-->URL/Package
artifactId-->そのグループ中のID
version-->
name-->必須ではない
プロジェクト管理なので、実際のCodeと関係がない。
pomで管理対象を設定するので、pomを修正すれば良い。

★eclipseに導入。。。

mvn eclipse:eclipse
==>windowsでuserのディレクトリの下で、権限の問題でいろいろうまくいかない!!
Cではなく、別のところにしよう。。

★echo %M2_HOME%
=>windowsで

★====>必要な時、plugInを検索して使う。