2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

maven入門:依賴 聚合 繼承(一)

 quasiceo 2018-08-04
2017年06月20日 16:06:18

目錄

maven的安裝不在這里講了,網(wǎng)上教程一大堆。

需要注意的:

(1).安裝完maven后建議更改本地倉庫的位置,在conf->setting.xml中修改

<localRepository></localRepository>
  • 1

(2).maven的默認遠程倉庫位置在lib目錄下的maven-model-builder.jar的pom-4.0.0.xml中的

<repositories>
    <repository>
        <url>http://repo.maven./maven2</url>
    </repository>
</repositories>
  • 1
  • 2
  • 3
  • 4
  • 5

6月22日補充:這篇博客沒有寫如何具體創(chuàng)建maven父子工程,其實我本人也到網(wǎng)上看過很多創(chuàng)建父子工程的博客,大同小異但是有些許不同,觀察比較細的同學(xué)會發(fā)現(xiàn)有些文章比如idea是先創(chuàng)建空項目還是先創(chuàng)建maven工程但是不選擇骨架。比如eclipse子項目是創(chuàng)建maven project還是必須創(chuàng)建maven module。重點不在于你用哪種方式創(chuàng)建,重點是創(chuàng)建出來的項目要符合maven規(guī)范,如父項目package值為POM(哪怕你創(chuàng)建時候選錯了都可以自行到pom.xml中手動改,甚至你可以手動創(chuàng)建項目的目錄結(jié)構(gòu),目錄結(jié)構(gòu)你足夠熟悉就好。)

1.maven常用命令:

  • 打包:mvn package (打包后放入target中)
  • 編譯:mvn compile(會生成target目錄,并把編譯后的class放在classes中)
  • 清空:mvn clean (清空target)
  • 測試:mvn test (測試報告生成后存在target中,一般是三個文件)
  • 安裝: mvn install (將項目安裝到本地倉庫中)
  • 發(fā)布: mvn deploy (發(fā)不到私服)

2.maven依賴

(1).依賴是具有傳遞性的.
(2).依賴傳遞原則:層級相同時按引入順序傳遞,層級不同時按層級最短的傳遞
舉個栗子:
A->B->C->X(1.0)
A->D->X(2.0)
由于只能引入一個版本的包,此時Maven按照最短路徑選擇導(dǎo)入x(2.0)
A->B->X(1.0)
A->D->X(2.0)
路徑長度一致,則優(yōu)先選擇第一個,此時導(dǎo)入x(1.0)

還有resources也是可以傳遞的,當(dāng)然resources中的文件不涉及層級問題,所以resources是按照dependency順序引入的。當(dāng)然如果本項目中能匹配到的話優(yōu)先選擇本項目中的。

(3).scope標(biāo)簽的值會影響依賴,這里暫時先不展開了.
(4).排除依賴可以用

<exclusions>
     <exclusion>
           <groupId>commons-logging</groupId>
           <artifactId>commons-logging</artifactId>
      </exclusion>
</exclusions>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.聚合

建立一個簡單項目artifactId為user-parent
這里寫圖片描述

  <modules>
      <module>../user-service</module>
      <module>../user-core</module>
      <module>../user-log</module>
  </modules>
  • 1
  • 2
  • 3
  • 4
  • 5

實現(xiàn)對三個項目的聚合,module標(biāo)簽中是其他項目的路徑.這樣所有項目都在通過操作父項目操作來實現(xiàn)了.
注意:modules的順序是不重要的,因為maven會自動根據(jù)依賴關(guān)系來拓撲排序.

4.繼承

子項目中添加:

  <parent>
      <groupId>cn.milo.user</groupId>
      <artifactId>user-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <!-- 這里是要指到pom文件的 -->
      <relativePath>../user-parent/pom.xml</relativePath> 
  </parent>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

6月22日補充:這里講一下relativePath標(biāo)簽,如果不寫這個標(biāo)簽,子項目會默認在子項目pom.xml的父目錄中查找pom.xml,沒有找到的話會依次到本地倉庫,遠程倉庫中找對應(yīng)的父項目并找到對應(yīng)的pom.xml.所以協(xié)同開發(fā)的話父項目要先deploy到私有倉庫.私有倉庫用法參照 : maven入門:nexus安裝與使用(二)

父項目中添加依賴管理:

 <!-- 依賴管理 -->
  <dependencyManagement>
      <dependencies>
          <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
      </dependencies>
  </dependencyManagement>
  父項目中添加依賴管理:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如上配置后子項目添加父項目中的jar包就不需要寫version標(biāo)簽了

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多