pomファイル解析

3195 ワード

Mavenの依存はMaven座標を使用して位置決めされますが、Maven座標は主にGAV(groupId,artifactId,version)で構成されています.そのため、どの依存を使用しても、そのMaven座標を知る必要があります.
http://www.mvnrepository.comここでは多くの依存座標を見つけることができます.
1、依存
      
        org.springframework  
        spring-core  
        ${springframework.version}  
        jar  
        compile  
      

groupId、必須、実際の所属項目
artifactId、必須、モジュール
バージョン必須、バージョン番号
typeオプション、依存タイプ、デフォルトjar、もう一つは比較的特殊で、axiで始まるようで、marを使っています.
scopeオプション、依存範囲、デフォルトcompile、test、provided、runtime、system
optionalオプション、タグ依存オプション、デフォルトfalse
Exclusionオプション、転送依存性の除外、デフォルト空
2、scopeのいくつかの範囲
compile:コンパイル、テスト、実行
test:テスト
provided:コンパイル、テスト
runtime:実行する
System:system:コンパイル、テスト、providedと同じですが、systemPathを指定する必要があります.ネット上では-慎重に.の
3、scope範囲のテスト
  pom文件解析_第1张图片
mavenは自動的に倉庫から関連するパッケージをダウンロードします
pom文件解析_第2张图片
梱包後、
pom文件解析_第3张图片
打ったwarバッグの中には、log 4 jとfreemarkerのバッグしかありません.
だから、ネット上のまとめを持って..
1.compile
コンパイル範囲、デフォルトscopeは、エンジニアリング環境のclasspath(コンパイル環境)とパッケージ(WARパッケージの場合、WARパッケージに含まれる)の両方で有効です.
 
2.provided
コンテナまたはJDKの範囲が指定されています.依存パッケージがターゲットコンテナによってすでに存在することを示します(tomcatなど)とJDKで提供され、コンパイルされたclasspathにのみロードおよび使用され、パッケージ化時にターゲットパッケージには含まれません.最も一般的なのはj 2 ee仕様に関連するservlet-apiやjsp-apiなどのjarパッケージで、一般的にservletコンテナで提供され、warパッケージにパッケージ化する必要はありません.providedに構成されていない場合、これらのパッケージをエンジニアリングwarパッケージにパッケージ化するとtomcat 6以上のバージョンで表示されます競合が正常にプログラムを実行できません(バージョンが一致しない場合).
 
3.runtime
一般的には実行環境とテスト環境で使用され、コンパイル時にclasspathを追加する必要はなく、パッケージ化時にターゲットパッケージにパッケージされます.一般に,動的ロードやインタフェース反射によるロードが多い.すなわち,プログラムはインタフェースのみを用いており,具体的には複数あり,実行時にプロファイルやjarパケットスキャンで動的にロードされる場合がある.典型的には、JDBCドライバなどがあります.
 
4.test
テスト範囲は、一般的にユニットテストシーンで使用され、コンパイル環境にclasspathを追加しますが、junitなどのパッケージには追加されません.
 
5.system(まだテストされていませんが、一般的には使用できません)
システム範囲はprovidedと同様ですが、scopeとマークされた依存パケットは、ファイルシステムベースのjarパケットパスを明確に指定する必要があります.システムPathでローカルjarファイルパスを指定する必要があるため、scopeは推奨されません.組織ベースの場合、一般的にローカルミラーが確立され、ローカルまたは組織のインフラストラクチャがローカルミラー管理に組み込まれ、scopeの使用を避けることができます.
資料:
1. http://blog.csdn.net/lastsweetop/article/details/8493475
2. http://juvenshun.iteye.com/blog/269094
3.http://acooly.iteye.com/blog/1788890