maven 相關名詞術語總結

1、Maven座標唯一標識一個依賴構件,它包含以下元素:

1)groupId:定義該Maven項目隸屬的實際項目 *

2)artifactId:定義實際項目中的一個Maven項目(模塊) *

3)version:定義Maven項目當前所屬的版本 *

4)packaging:項目打包方式,包括:jar、war、pom等(可選,默認爲jar)

5)classifier:幫助定義構建輸出的一些附屬構件,如該項目會通過使用一些插件生成如:javadoc.jar和java-sources.jar,它倆就是這兩個附屬構件的classifier,(不能直接定義,因爲由附屬插件生成)

2、propertyies: 定義一些屬性供下面引用
例如:

   <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- spring版本號 -->
    <spring.version>4.2.1.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
   <dependencies/>

3、dependency

  1)groupId

  2)artifactId

  3)version

  4)type:依賴的類型,對應於項目座標定義的packaging(默認爲Jar)

  5)scope:依賴的範圍

  6)opetional:標記依賴是否可選

  7)exclusions:用來排除傳遞性依賴

4、依賴範圍:用來控制依賴與三種classpath的關係(編繹、測試、運行)

  1)compile:編繹依賴範圍,默認,三種classpath都有效,例如spring-core

  2)test:測試依賴範圍,只在測試classpath有效,例如junit

  3)provided:已提供依賴範圍,只在編繹和測試classpath有

     效,例如servlet-api,因爲運行時容器會提供

  4)runtime:運行時依賴範圍,只在測試和運行classpath有效,

    例如jdbc驅動,因爲編繹時只需要jdk的jdbc接口,在測

    試和運行時才真正需要驅動

  5)system:系統依賴範圍,和provided一樣,需要通過

    systemPath元素顯示地指定依賴位置,可以引用環境變

    量,但是不推薦使用(往往與本地依賴綁定,移植性不好)

  6)import:導入依賴範圍,該依賴不會對三種classpath產生實

    際的影響,通常和dependencyManagement結合使用

5、傳遞性依賴與傳遞性依賴範圍:

  定義:如果A項目依賴於B依賴,而B依賴又依賴於C依賴,那麼當你在項目

  A中導入B依賴時,maven會自動將C依賴導入

  第一直接依賴的範圍和第二直接依賴的範圍決定了傳遞依賴的範圍

  如下圖:最左邊一行表示第一直接依賴範圍,最上面一行表示第二直

  接依賴範圍,中間交叉部分表示傳遞依賴範圍

  ![傳遞依賴](https://img-blog.csdn.net/20150918173626753)

6、依賴調解:當項目A有多個依賴路徑時,原則是路徑最近者優先,當

路徑相等的情況下“第一聲明者優先”

7、可選依賴:項目A依賴於項目B,項目B依賴於項目C和D,那麼C和D

B對於C和D的依賴都是可選依賴,都不會傳遞給A,原因:C和D可能是互

斥的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章