計(jì)算機(jī)程序虛擬的人生
          虛擬世界中的游魂
          三種依賴范圍:compiletestprovided,runtime,test,system

          compile(編譯范圍)

          compile是默認(rèn)的范圍;如果沒(méi)有提供一個(gè)范圍,那該依賴的范圍就是編譯范圍。編譯范圍依賴在所有的classpath中可用,同時(shí)它們也會(huì)被打包。

          provided(已提供范圍)

          provided依賴只有在當(dāng)JDK或者一個(gè)容器已提供該依賴之后才使用。例如,如果你開(kāi)發(fā)了一個(gè)web應(yīng)用,你可能在編譯classpath中需要可用的Servlet API來(lái)編譯一個(gè)servlet,但是你不會(huì)想要在打包好的WAR中包含這個(gè)Servlet API;這個(gè)Servlet API JAR由你的應(yīng)用服務(wù)器或者servlet容器提供。已提供范圍的依賴在編譯classpath(不是運(yùn)行時(shí))可用。它們不是傳遞性的,也不會(huì)被打包。

          runtime(運(yùn)行時(shí)范圍)

          runtime依賴在運(yùn)行和測(cè)試系統(tǒng)的時(shí)候需要,但在編譯的時(shí)候不需要。比如,你可能在編譯的時(shí)候只需要JDBC API JAR,而只有在運(yùn)行的時(shí)候才需要JDBC驅(qū)動(dòng)實(shí)現(xiàn)。

          test(測(cè)試范圍)

          test范圍依賴在一般的 編譯和運(yùn)行時(shí)都不需要,它們只有在測(cè)試編譯和測(cè)試運(yùn)行階段可用。

          system(系統(tǒng)范圍)

          system范圍依賴與provided類似,但是你必須顯式的提供一個(gè)對(duì)于本地系統(tǒng)中JAR文件的路徑。這么做是為了允許基于本地對(duì)象編譯,而這些對(duì)象是系統(tǒng)類庫(kù)的一部分。這樣的構(gòu)件應(yīng)該是一直可用的,Maven也不會(huì)在倉(cāng)庫(kù)中去尋找它。如果你將一個(gè)依賴范圍設(shè)置成系統(tǒng)范圍,你必須同時(shí)提供一個(gè)systemPath元素。注意該范圍是不推薦使用的(你應(yīng)該一直盡量去從公共或定制的Maven倉(cāng)庫(kù)中引用依賴)。

           
          依賴版本界限:
          (?, ?) 不包含量詞。意思為:?<xx<?
          [?, ?] 包含量詞。意思為:?<=xx<=?
          例如:指定一個(gè)依賴界限:JUnit 3.8 - JUnit 4.0
          <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>[3.8,4.0)</version>
          <scope>test</scope>
          </dependency>
          
           
          posted on 2009-06-07 22:28 小兄弟(Robbins) 閱讀(570) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 平阴县| 扎兰屯市| 江口县| 长兴县| 土默特左旗| 鸡西市| 曲松县| 泰顺县| 兴山县| 岑巩县| 育儿| 铁岭县| 金溪县| 平邑县| 库车县| 沭阳县| 墨玉县| 安国市| 甘谷县| 葵青区| 鄂伦春自治旗| 昭平县| 武义县| 桂阳县| 来凤县| 皋兰县| 花莲市| 天台县| 昌平区| 东乡族自治县| 河间市| 南木林县| 林州市| 都昌县| 弥渡县| 西吉县| 罗山县| 彭山县| 金秀| 巴林左旗| 中方县|