mavenでのparentとdependencyManagement

3931 ワード

今日はmavenのpomについてお話しします.xmlファイルのparent、dependencyManagementラベル.
まずparentラベルといえば、実はこれは説明しにくくなくて、父の意味で、pomも継承しています.例えば私は今A、B、C、AがB、Cの父級を持っています.今はBがありますが、Cにはjarが共通していることがたくさんあります.実は親プロジェクトに入れることができます.そうすれば、B、CにAを継承させると管理が便利になります.
サブモジュールの書き方は次のとおりです.
 
  
        com.lala  
        my-parent  
        0.0.1  
      

 
 
 
今dependencyManagementラベルについて話しますが、実はこれもよく理解しています.例えば、あなたのAプロジェクトpomファイルの内容は以下の通りです.
 
  
    4.0.0  
  
    com.lala  
    my-parent  
    0.0.1  
    pom  
  
      
        UTF-8  
      
  
      
          
            junit  
            junit  
            4.11  
            test  
          
          
            redis.clients  
            jedis  
            2.4.0  
            provided  
          
      
  
      
          
              
                javax.mail  
                javax.mail-api  
                1.5.3  
                provided  
              
          
      
  
      
          
              
                org.apache.maven.plugins  
                maven-compiler-plugin  
                3.3  
                  
                    1.8  
                    1.8  
                    true  
                  
              
          
      
  

dependencyManagementラベルで囲まれたjarでは、B、Cは継承されていません.つまり、自動的に導入されません.サブプロジェクトに表示される依存を宣言して親プロジェクトを導入することができます.
のjar(version,scopeを指定する必要はありません).parentラベルは親プロジェクトに依存し、サブプロジェクトが自動的に導入されます.これも両者の違いです.
つまり、B、CがAのjarを引用したい場合、dependencyManagementのjarは、B、Cに直接ラベルを書くのは役に立たず、自動的に導入されません.
控訴する親Aのjavaxを引用したい場合は.mail-apiラックパッケージ、また書き直します(ラベルは書かなくてもいいです).
何の意味があるんだ?どうして直接全部引用しないのですか.ここでは、例えばB、CにはAのjarの大部分が必要ですが、jar B、Cの一部があります.
いいえ、B、Cはjarを必要としません.まだ違うかもしれません.この場合、dependencyManagementラベルを選択する必要があります.
もう一つ説明したいのは、dependencyManagementを親子関係で使う必要はありません.これは重要です.例えば私はBプロジェクトにいて、親プロジェクトを引用しないで、私はBの中でdependencyManagementを引用します.
ラベルも可能です.以下のようにします.
//          ,      jar  
  
        
              
                org.springframework //jar        
                spring-core  
                3.2.7  //      
              
      
  
  
//     jar   
  
         
                org.springframework  
                spring-core //   version   ,    
         

 
まとめ:
pomファイルではjarのバージョン判断には2つの方法があります
1つ目は最も一般的なdepenencyにversionを書くことです
2、第1種でなければ、mavenは自分のpomファイルや親pomにartifactidとgroupidのバージョンを明記しているかどうかを探し、あればそのバージョン番号を持って、間違っていないと報告します.
3、両方とも書き間違えた場合は、1つ目は2つ目をカバーします.