1. 程式人生 > >(一)maven管理之依賴

(一)maven管理之依賴

(一)maven管理之依賴

1.倉庫地址

    maven倉庫網址:http://search.maven.org

2.maven依賴的9大屬性    

    groupId,artfactId,version,type,classifier,scope,systemPath,exclusions,optional

3.屬性解析

groupId

     專案包在全球的唯一標識

artfactId

    專案包構建的唯一標識

version

     指定所依賴包的版本號

type

     指定依賴包的型別,一般包括jar,war,pom。

classifier

     指定依賴包的構件型別

scope

    指定依賴包的使用範圍,有6種類型;

    compile 編譯依賴範圍,預設使用該範圍,對於編譯、測試、執行三宗classpath都有效。
    test 測試依賴範圍,只對測試classpath有效
    provided 已體提供依賴範圍。對於編譯和測試classpath有效,執行時無效
    runtime 執行時依賴範圍。對於測試和執行的claspath有效,編譯無效
    system 系統依賴範圍。和provided依賴範圍完全一致。使用system範圍的依賴,不許通過systemPath元素顯示地制定依賴檔案的路徑。
    import 匯入依賴範圍。不會對三種classpath產生實際的影響。


 

systemPath

       是配合<scope>為system使用的,指定非maven倉庫匯入的jar包;並且路徑不能是相對路徑,所以需要加上${basedir},

${basedir}這個是pom的內建屬性。

<dependency>
            <groupId>Msc</groupId>
            <artifactId>Msc</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/Msc.jar</systemPath>
  </dependency>

exclusions

      依賴排除,就是有時候引入某一個依賴的時候,該依賴下有jar包衝突,可以排除掉,不引用該jar

<dependency>
            <groupId>test</groupId>
            <artifactId>test</artifactId>
            <version>1.0.2-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
 </dependency>

optional

      決定是否繼承當前依賴包的依賴項。比如A依賴B,B依賴C;在A中配置如下即表示A只依賴B,而不依賴C。optional預設是false。

<dependency>
            <groupId>B</groupId>
            <artifactId>B</artifactId>
            <version>1.0.2-SNAPSHOT</version>
            <optional>true</optional>
 </dependency>