久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

超級詳細(xì)的Maven使用教程

 春和秋榮 2018-12-25

什么是Maven,?

如今我們構(gòu)建一個項目需要用到很多第三方的類庫,,如寫一個使用Spring的Web項目就需要引入大量的jar包,。一個項目Jar包的數(shù)量之多往往讓我們瞠目結(jié)舌,,并且Jar包之間的關(guān)系錯綜復(fù)雜,一個Jar包往往又會引用其他Jar包,,缺少任何一個Jar包都會導(dǎo)致項目編譯失敗,。

以往開發(fā)項目時,程序員往往需要花較多的精力在引用Jar包搭建項目環(huán)境上,而這一項工作尤為艱難,,少一個Jar包,、多一個Jar包往往會報一些讓人摸不著頭腦的異常。

而Maven就是一款幫助程序員構(gòu)建項目的工具,,我們只需要告訴Maven需要哪些Jar 包,,它會幫助我們下載所有的Jar,極大提升開發(fā)效率,。

安裝Maven 和 Maven的Eclipse插件 

http://blog.csdn.net/qjyong/article/details/9098213

Maven規(guī)定的目錄結(jié)構(gòu)

若要使用Maven,,那么項目的目錄結(jié)構(gòu)必須符合Maven的規(guī)范,其目錄結(jié)構(gòu)如下:

Maven基本命令

  1. -v:查詢Maven版本

    本命令用于檢查maven是否安裝成功,。

    Maven安裝完成之后,,在命令行輸入mvn -v,若出現(xiàn)maven信息,,則說明安裝成功,。

  2. compile:編譯

    將java源文件編譯成class文件

  3. test:測試項目

    執(zhí)行test目錄下的測試用例

  4. package:打包

    將項目打成jar包

  5. clean:刪除target文件夾

  6. install:安裝

    將當(dāng)前項目放到Maven的本地倉庫中。供其他項目使用

什么是Maven倉庫,?

Maven倉庫用來存放Maven管理的所有Jar包,。分為:本地倉庫 和 中央倉庫。

  • 本地倉庫:Maven本地的Jar包倉庫,。
  • 中央倉庫: Maven官方提供的遠(yuǎn)程倉庫,。

當(dāng)項目編譯時,Maven首先從本地倉庫中尋找項目所需的Jar包,,若本地倉庫沒有,,再到Maven的中央倉庫下載所需Jar包。

什么是“坐標(biāo)”,?

在Maven中,,坐標(biāo)是Jar包的唯一標(biāo)識,Maven通過坐標(biāo)在倉庫中找到項目所需的Jar包,。

如下代碼中,,groupId和artifactId構(gòu)成了一個Jar包的坐標(biāo)。

  1. <dependency>
  2. <groupId>cn.missbe.web.search</groupId>
  3. <artifactId>resource-search</artifactId>
  4. <packaging>jar</packaging>
  5. <version>1.0-SNAPSHOT</version>
  6. </dependency>
  • groupId:所需Jar包的項目名
  • artifactId:所需Jar包的模塊名
  • version:所需Jar包的版本號

傳遞依賴 與 排除依賴

  • 傳遞依賴:如果我們的項目引用了一個Jar包,,而該Jar包又引用了其他Jar包,,那么在默認(rèn)情況下項目編譯時,Maven會把直接引用和簡潔引用的Jar包都下載到本地,。
  • 排除依賴:如果我們只想下載直接引用的Jar包,,那么需要在pom.xml中做如下配置:(將需要排除的Jar包的坐標(biāo)寫在中)
  1. <exclusions>
  2. <exclusion>
  3. <groupId>cn.missbe.web.search</groupId>
  4. <artifactId>resource-search</artifactId>
  5. <packaging>pom</packaging>
  6. <version>1.0-SNAPSHOT</version>
  7. </exclusion>
  8. </exclusions>

依賴范圍scope

在項目發(fā)布過程中,幫助決定哪些構(gòu)件被包括進(jìn)來,。欲知詳情請參考依賴機(jī)制,。    
- compile :默認(rèn)范圍,,用于編譯      
- provided:類似于編譯,但支持你期待jdk或者容器提供,,類似于classpath      
- runtime: 在執(zhí)行時需要使用      
- test:    用于test任務(wù)時使用      
- system: 需要外在提供相應(yīng)的元素,。通過systemPath來取得      
- systemPath: 僅用于范圍為system。提供相應(yīng)的路徑      
  - optional:   當(dāng)項目自身被依賴時,,標(biāo)注依賴是否傳遞,。用于連續(xù)依賴時使用

依賴沖突

若項目中多個Jar同時引用了相同的Jar時,會產(chǎn)生依賴沖突,,但Maven采用了兩種避免沖突的策略,,因此在Maven中是不存在依賴沖突的。

  • 短路優(yōu)先
  1. 本項目——>A.jar——>B.jar——>X.jar
  2. 本項目——>C.jar——>X.jar
  1. 本項目——>A.jar——>B.jar——>X.jar

  2. 本項目——>C.jar——>X.jar

若本項目引用了A.jar,,A.jar又引用了B.jar,,B.jar又引用了X.jar,并且C.jar也引用了X.jar,。

在此時,,Maven只會引用引用路徑最短的Jar。

  • 聲明優(yōu)先

    若引用路徑長度相同時,,在pom.xml中誰先被聲明,,就使用誰。

聚合

  1. 什么是聚合,?

    將多個項目同時運(yùn)行就稱為聚合,。

  2. 如何實(shí)現(xiàn)聚合?

    只需在pom中作如下配置即可實(shí)現(xiàn)聚合:

  1. <modules>
  2. <module>web-connection-pool</module>
  3. <module>web-java-crawler</module>
  4. </modules>

繼承

  1. 什么是繼承,?

    在聚合多個項目時,,如果這些被聚合的項目中需要引入相同的Jar,那么可以將這些Jar寫入父pom中,,各個子項目繼承該pom即可,。

  2. 如何實(shí)現(xiàn)繼承?

  • 父pom配置:將需要繼承的Jar包的坐標(biāo)放入標(biāo)簽即可,。

  1. <dependencyManagement>
  2. <dependencies>
  3. <dependency>
  4. <groupId>cn.missbe.web.search</groupId>
  5. <artifactId>resource-search</artifactId>
  6. <packaging>pom</packaging>
  7. <version>1.0-SNAPSHOT</version>
  8. </dependency>
  9. </dependencies>
  10. </dependencyManagement>
  • 子pom配置:
  1. <parent>
  2. <groupId>父pom所在項目的groupId</groupId>
  3. <artifactId>父pom所在項目的artifactId</artifactId>
  4. <version>父pom所在項目的版本號</version>
  5. </parent>
  6. <parent>
  7. <artifactId>resource-search</artifactId>
  8. <groupId>cn.missbe.web.search</groupId>
  9. <version>1.0-SNAPSHOT</version>
  10. </parent>

使用Maven構(gòu)建Web項目

  1. New Maven項目:選擇WebApp:

  2. 若使用JSP,,需添加Servlet依賴:

    注:Servlet依賴只在編譯和測試時使用!

  1. <dependency>
  2. <groupId>javax.servlet</groupId>
  3. <artifactId>javax.servlet-api</artifactId>
  4. <version>3.0.1</version>
  5. <!-- 只在編譯和測試時運(yùn)行 -->
  6. <scope>provided</scope>
  7. </dependency>
  1. 在Bulid Path中設(shè)置resource輸出目錄:

  2. 勾選:Dynamic Web Module

  3. 刪掉測試目錄

  4. 在pom中加入jetty的插件,,并設(shè)置JDK版本:

  1. <plugins>
  2. <plugin>
  3. <groupId>org.apache.maven.plugins</groupId>
  4. <artifactId>maven-compiler-plugin</artifactId>
  5. <configuration>
  6. <source>1.8</source>
  7. <target>1.8</target>
  8. </configuration>
  9. </plugin>
  10. <plugin>
  11. <groupId>org.eclipse.jetty</groupId>
  12. <artifactId>jetty-maven-plugin</artifactId>
  13. <version>9.3.10.v20160621</version>
  14. <executions>
  15. <execution>
  16. <phase>package</phase>
  17. </execution>
  18. </executions>
  19. </plugin>
  20. </plugins>
  1. 運(yùn)行項目:

  2. 輸入:jetty:run

  3. 訪問127.0.0.1:8080

    若出現(xiàn)如下界面,表示成功,!

pom.xml詳解

pom.xml是Maven的核心,,你的項目需要什么Jar包就在pom.xml里面配置。當(dāng)編譯項目時Maven讀取該文件,,并從倉庫中下載相應(yīng)的Jar包,。

  1. <project xmlns="http://maven./POM/4.0.0"
  2. xmlns:xsi="http://www./2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven./POM/4.0.0http://maven./maven-v4_0_0.xsd">
  4. <!--父項目的坐標(biāo),。如果項目中沒有規(guī)定某個元素的值,
  5. 那么父項目中的對應(yīng)值即為項目的默認(rèn)值,。
  6. 坐標(biāo)包括group ID,,artifact ID和 version。-->
  7. <parent>
  8. <!--被繼承的父項目的構(gòu)件標(biāo)識符-->
  9. <artifactId/>
  10. <!--被繼承的父項目的全球唯一標(biāo)識符-->
  11. <groupId/>
  12. <!--被繼承的父項目的版本-->
  13. <version/>
  14. </parent>
  15. <!--聲明項目描述符遵循哪一個POM模型版本,。模型本身的版本很少改變,,雖然如此,
  16. 但它仍然是必不可少的,,這是為了當(dāng)Maven引入了新的特性或者其他模型變更的時候,,
  17. 確保穩(wěn)定性。-->
  18. <modelVersion>4.0.0</modelVersion>
  19. <!--項目的全球唯一標(biāo)識符,,通常使用全限定的包名區(qū)分該項目和其他項目,。
  20. 并且構(gòu)建時生成的路徑也是由此生成, 如com.mycompany.app生成的相對路徑為:
  21. /com/mycompany/app-->
  22. <groupId>cn.missbe.web</groupId>
  23. <!-- 構(gòu)件的標(biāo)識符,,它和group ID一起唯一標(biāo)識一個構(gòu)件,。換句話說,
  24. 你不能有兩個不同的項目擁有同樣的artifact ID和groupID,;在某個
  25. 特定的group ID下,,artifact ID也必須是唯一的。構(gòu)件是項目產(chǎn)生的或使用的一個東西,,
  26. Maven為項目產(chǎn)生的構(gòu)件包括:JARs,,源碼,,二進(jìn)制發(fā)布和WARs等,。-->
  27. <artifactId>search-resources</artifactId>
  28. <!--項目產(chǎn)生的構(gòu)件類型,例如jar,、war,、ear,、pom。插件可以創(chuàng)建
  29. 他們自己的構(gòu)件類型,,所以前面列的不是全部構(gòu)件類型-->
  30. <packaging>war</packaging>
  31. <!--項目當(dāng)前版本,,格式為:主版本.次版本.增量版本-限定版本號-->
  32. <version>1.0-SNAPSHOT</version>
  33. <!--項目的名稱, Maven產(chǎn)生的文檔用-->
  34. <name>search-resources</name>
  35. <!--項目主頁的URL, Maven產(chǎn)生的文檔用-->
  36. <url>http://www.</url>
  37. <!-- 項目的詳細(xì)描述, Maven 產(chǎn)生的文檔用。 當(dāng)這個元素能夠用HTML格式描述時
  38. (例如,,CDATA中的文本會被解析器忽略,,就可以包含HTML標(biāo) 簽),
  39. 不鼓勵使用純文本描述,。如果你需要修改產(chǎn)生的web站點(diǎn)的索引頁面,,
  40. 你應(yīng)該修改你自己的索引頁文件,而不是調(diào)整這里的文檔,。-->
  41. <description>A maven project to study maven.</description>
  42. <!--描述了這個項目構(gòu)建環(huán)境中的前提條件,。-->
  43. <prerequisites>
  44. <!--構(gòu)建該項目或使用該插件所需要的Maven的最低版本-->
  45. <maven/>
  46. </prerequisites>
  47. <!--構(gòu)建項目需要的信息-->
  48. <build>
  49. <!--該元素設(shè)置了項目源碼目錄,,當(dāng)構(gòu)建項目的時候,
  50. 構(gòu)建系統(tǒng)會編譯目錄里的源碼,。該路徑是相對于pom.xml的相對路徑,。-->
  51. <sourceDirectory/>
  52. <!--該元素設(shè)置了項目腳本源碼目錄,該目錄和源碼目錄不同:
  53. 絕大多數(shù)情況下,,該目錄下的內(nèi)容 會被拷貝到輸出目錄(因?yàn)槟_本是被解釋的,,而不是被編譯的)。-->
  54. <scriptSourceDirectory/>
  55. <!--該元素設(shè)置了項目單元測試使用的源碼目錄,,當(dāng)測試項目的時候,,
  56. 構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.xml的相對路徑,。-->
  57. <testSourceDirectory/>
  58. <!--被編譯過的應(yīng)用程序class文件存放的目錄,。-->
  59. <outputDirectory/>
  60. <!--被編譯過的測試class文件存放的目錄。-->
  61. <testOutputDirectory/>
  62. <!--使用來自該項目的一系列構(gòu)建擴(kuò)展-->
  63. <extensions>
  64. <!--描述使用到的構(gòu)建擴(kuò)展,。-->
  65. <extension>
  66. <!--構(gòu)建擴(kuò)展的groupId-->
  67. <groupId/>
  68. <!--構(gòu)建擴(kuò)展的artifactId-->
  69. <artifactId/>
  70. <!--構(gòu)建擴(kuò)展的版本-->
  71. <version/>
  72. </extension>
  73. </extensions>
  74. <!--這個元素描述了項目相關(guān)的所有資源路徑列表,,例如和項目相關(guān)的屬性文件,
  75. 這些資源被包含在最終的打包文件里,。-->
  76. <resources>
  77. <!--這個元素描述了項目相關(guān)或測試相關(guān)的所有資源路徑-->
  78. <resource>
  79. <!-- 描述了資源的目標(biāo)路徑,。該路徑相對target/classes目錄(例如${project.build.outputDirectory})。舉個例 子,,如果你想資源在特定的包里(org.apache.maven.messages),,你就必須該元素設(shè)置為org/apache/maven /messages。
  80. 然而,,如果你只是想把資源放到源碼目錄結(jié)構(gòu)里,,就不需要該配置。-->
  81. <targetPath/>
  82. <!--是否使用參數(shù)值代替參數(shù)名,。參數(shù)值取自properties元素或者文件里配置的屬性,,
  83. 文件在filters元素里列出。-->
  84. <filtering/>
  85. <!--描述存放資源的目錄,,該路徑相對POM路徑-->
  86. <directory/>
  87. <!--包含的模式列表,,例如**/*.xml.-->
  88. <includes/>
  89. <!--排除的模式列表,例如**/*.xml-->
  90. <excludes/>
  91. </resource>
  92. </resources>
  93. <!--這個元素描述了單元測試相關(guān)的所有資源路徑,,例如和單元測試相關(guān)的屬性文件,。-->
  94. <testResources>
  95. <!--這個元素描述了測試相關(guān)的所有資源路徑,參見build/resources/resource元素的說明-->
  96. <testResource>
  97. <targetPath/><filtering/><directory/><includes/><excludes/>
  98. </testResource>
  99. </testResources>
  100. <!--構(gòu)建產(chǎn)生的所有文件存放的目錄-->
  101. <directory/>
  102. <!--產(chǎn)生的構(gòu)件的文件名,,默認(rèn)值是${artifactId}-${version},。-->
  103. <finalName/>
  104. <!--當(dāng)filtering開關(guān)打開時,使用到的過濾器屬性文件列表-->
  105. <filters/>
  106. <!--子項目可以引用的默認(rèn)插件信息,。該插件配置項直到被引用時才會被解析或綁定到生命周期,。
  107. 給定插件的任何本地配置都會覆蓋這里的配置-->
  108. <pluginManagement>
  109. <!--使用的插件列表 。-->
  110. <plugins>
  111. <!--plugin元素包含描述插件所需要的信息,。-->
  112. <plugin>
  113. <!--插件在倉庫里的group ID-->
  114. <groupId/>
  115. <!--插件在倉庫里的artifact ID-->
  116. <artifactId/>
  117. <!--被使用的插件的版本(或版本范圍)-->
  118. <version/>
  119. <!--是否從該插件下載Maven擴(kuò)展(例如打包和類型處理器),,由于性能原因,
  120. 只有在真需要下載時,,該元素才被設(shè)置成enabled,。-->
  121. <extensions/>
  122. <!--在構(gòu)建生命周期中執(zhí)行一組目標(biāo)的配置。每個目標(biāo)可能有不同的配置,。-->
  123. <executions>
  124. <!--execution元素包含了插件執(zhí)行需要的信息-->
  125. <execution>
  126. <!--執(zhí)行目標(biāo)的標(biāo)識符,,用于標(biāo)識構(gòu)建過程中的目標(biāo),或者匹配繼承過程中需要合并的執(zhí)行目標(biāo)-->
  127. <id/>
  128. <!--綁定了目標(biāo)的構(gòu)建生命周期階段,,如果省略,,目標(biāo)會被綁定到源數(shù)據(jù)里配置的默認(rèn)階段-->
  129. <phase/>
  130. <!--配置的執(zhí)行目標(biāo)-->
  131. <goals/>
  132. <!--配置是否被傳播到子POM-->
  133. <inherited/>
  134. <!--作為DOM對象的配置-->
  135. <configuration/>
  136. </execution>
  137. </executions>
  138. <!--項目引入插件所需要的額外依賴-->
  139. <dependencies>
  140. <!--參見dependencies/dependency元素-->
  141. <dependency>
  142. ......
  143. </dependency>
  144. </dependencies>
  145. <!--任何配置是否被傳播到子項目-->
  146. <inherited/>
  147. <!--作為DOM對象的配置-->
  148. <configuration/>
  149. </plugin>
  150. </plugins>
  151. </pluginManagement>
  152. <!--使用的插件列表-->
  153. <plugins>
  154. <!--參見build/pluginManagement/plugins/plugin元素-->
  155. <plugin>
  156. <groupId/><artifactId/><version/><extensions/>
  157. <executions>
  158. <execution>
  159. <id/><phase/><goals/><inherited/><configuration/>
  160. </execution>
  161. </executions>
  162. <dependencies>
  163. <!--參見dependencies/dependency元素-->
  164. <dependency>
  165. ......
  166. </dependency>
  167. </dependencies>
  168. <goals/><inherited/><configuration/>
  169. </plugin>
  170. </plugins>
  171. </build>
  172. <!--模塊(有時稱作子項目) 被構(gòu)建成項目的一部分。
  173. 列出的每個模塊元素是指向該模塊的目錄的相對路徑-->
  174. <modules/>
  175. <!--發(fā)現(xiàn)依賴和擴(kuò)展的遠(yuǎn)程倉庫列表,。-->
  176. <repositories>
  177. <!--包含需要連接到遠(yuǎn)程倉庫的信息-->
  178. <repository>
  179. <!--如何處理遠(yuǎn)程倉庫里發(fā)布版本的下載-->
  180. <releases>
  181. <!--true或者false表示該倉庫是否為下載某種類型構(gòu)件(發(fā)布版,,快照版)開啟。 -->
  182. <enabled/>
  183. <!--該元素指定更新發(fā)生的頻率,。Maven會比較本地POM和遠(yuǎn)程POM的時間戳,。這里的選項是:always(一直),daily(默認(rèn),,每日),,interval:X(這里X是以分鐘為單位的時間間隔),或者never(從不),。-->
  184. <updatePolicy/>
  185. <!--當(dāng)Maven驗(yàn)證構(gòu)件校驗(yàn)文件失敗時該怎么做:ignore(忽略),,fail(失敗),,或者warn(警告),。-->
  186. <checksumPolicy/>
  187. </releases>
  188. <!-- 如何處理遠(yuǎn)程倉庫里快照版本的下載。有了releases和snapshots這兩組配置,,
  189. POM就可以在每個單獨(dú)的倉庫中,,為每種類型的構(gòu)件采取不同的 策略。
  190. 例如,,可能有人會決定只為開發(fā)目的開啟對快照版本下載的支持,。
  191. 參見repositories/repository/releases元素 -->
  192. <snapshots>
  193. <enabled/><updatePolicy/><checksumPolicy/>
  194. </snapshots>
  195. <!--遠(yuǎn)程倉庫唯一標(biāo)識符??梢杂脕砥ヅ湓趕ettings.xml文件里配置的遠(yuǎn)程倉庫-->
  196. <id>banseon-repository-proxy</id>
  197. <!--遠(yuǎn)程倉庫名稱-->
  198. <name>banseon-repository-proxy</name>
  199. <!--遠(yuǎn)程倉庫URL,,按protocol://hostname/path形式-->
  200. <url>http://192.168.1.169:9999/repository/</url>
  201. <!-- 用于定位和排序構(gòu)件的倉庫布局類型-可以是default(默認(rèn))或者legacy(遺留)。Maven 2為其倉庫提供了一個默認(rèn)的布局,;然 而,,Maven 1.x有一種不同的布局,。我們可以使用該元素指定布局是default(默認(rèn))還是legacy(遺留)。-->
  202. <layout>default</layout>
  203. </repository>
  204. </repositories>
  205. <!--發(fā)現(xiàn)插件的遠(yuǎn)程倉庫列表,,這些插件用于構(gòu)建和報表-->
  206. <pluginRepositories>
  207. <!--包含需要連接到遠(yuǎn)程插件倉庫的信息.參見repositories/repository元素-->
  208. <pluginRepository>
  209. ......
  210. </pluginRepository>
  211. </pluginRepositories>
  212. <!--該元素描述了項目相關(guān)的所有依賴,。 這些依賴組成了項目構(gòu)建過程中的一個個環(huán)節(jié)。
  213. 它們自動從項目定義的倉庫中下載,。要獲取更多信息,,請看項目依賴機(jī)制。-->
  214. <dependencies>
  215. <dependency>
  216. <!--依賴的group ID-->
  217. <groupId>org.apache.maven</groupId>
  218. <!--依賴的artifact ID-->
  219. <artifactId>maven-artifact</artifactId>
  220. <!--依賴的版本號,。 在Maven 2里, 也可以配置成版本號的范圍,。-->
  221. <version>3.8.1</version>
  222. <!-- 依賴類型,默認(rèn)類型是jar,。它通常表示依賴的文件的擴(kuò)展名,,但也有例外
  223. 。一個類型可以被映射成另外一個擴(kuò)展名或分類器,。類型經(jīng)常和使用的打包方式對應(yīng),,
  224. 盡管這也有例外。一些類型的例子:jar,,war,,ejb-client和test-jar。
  225. 如果設(shè)置extensions為 true,,就可以在 plugin里定義新的類型,。所以前面的類型的例子不完整。-->
  226. <type>jar</type>
  227. <!-- 依賴的分類器,。分類器可以區(qū)分屬于同一個POM,,但不同構(gòu)建方式的構(gòu)件。
  228. 分類器名被附加到文件名的版本號后面,。例如,,如果你想要構(gòu)建兩個單獨(dú)的構(gòu)件成 JAR,
  229. 一個使用Java 1.4編譯器,,另一個使用Java 6編譯器,,你就可以使用分類器來生成兩個單獨(dú)的JAR構(gòu)件。-->
  230. <classifier></classifier>
  231. <!--依賴范圍,。在項目發(fā)布過程中,,幫助決定哪些構(gòu)件被包括進(jìn)來。欲知詳情請參考依賴機(jī)制,。
  232. - compile :默認(rèn)范圍,,用于編譯
  233. - provided:類似于編譯,但支持你期待jdk或者容器提供,類似于classpath
  234. - runtime: 在執(zhí)行時需要使用
  235. - test: 用于test任務(wù)時使用
  236. - system: 需要外在提供相應(yīng)的元素,。通過systemPath來取得
  237. - systemPath: 僅用于范圍為system,。提供相應(yīng)的路徑
  238. - optional: 當(dāng)項目自身被依賴時,標(biāo)注依賴是否傳遞,。用于連續(xù)依賴時使用-->
  239. <scope>test</scope>
  240. <!--僅供system范圍使用,。注意,不鼓勵使用這個元素,,
  241. 并且在新的版本中該元素可能被覆蓋掉。該元素為依賴規(guī)定了文件系統(tǒng)上的路徑,。
  242. 需要絕對路徑而不是相對路徑,。推薦使用屬性匹配絕對路徑,例如${java.home},。-->
  243. <systemPath></systemPath>
  244. <!--當(dāng)計算傳遞依賴時,, 從依賴構(gòu)件列表里,列出被排除的依賴構(gòu)件集,。
  245. 即告訴maven你只依賴指定的項目,,不依賴項目的依賴。此元素主要用于解決版本沖突問題-->
  246. <exclusions>
  247. <exclusion>
  248. <artifactId>spring-core</artifactId>
  249. <groupId>org.springframework</groupId>
  250. </exclusion>
  251. </exclusions>
  252. <!--可選依賴,,如果你在項目B中把C依賴聲明為可選,,你就需要在依賴于B的項目(例如項目A)中顯式的引用對C的依賴??蛇x依賴阻斷依賴的傳遞性,。-->
  253. <optional>true</optional>
  254. </dependency>
  255. </dependencies>
  256. <!-- 繼承自該項目的所有子項目的默認(rèn)依賴信息。這部分的依賴信息不會被立即解析,
  257. 而是當(dāng)子項目聲明一個依賴(必須描述group ID和 artifact ID信息),,
  258. 如果group ID和artifact ID以外的一些信息沒有描述,,
  259. 則通過group ID和artifact ID 匹配到這里的依賴,并使用這里的依賴信息,。-->
  260. <dependencyManagement>
  261. <dependencies>
  262. <!--參見dependencies/dependency元素-->
  263. <dependency>
  264. ......
  265. </dependency>
  266. </dependencies>
  267. </dependencyManagement>
  268. <!--項目分發(fā)信息,,在執(zhí)行mvn deploy后表示要發(fā)布的位置。
  269. 有了這些信息就可以把網(wǎng)站部署到遠(yuǎn)程服務(wù)器或者把構(gòu)件部署到遠(yuǎn)程倉庫,。-->
  270. <distributionManagement>
  271. <!--部署項目產(chǎn)生的構(gòu)件到遠(yuǎn)程倉庫需要的信息-->
  272. <repository>
  273. <!--是分配給快照一個唯一的版本號(由時間戳和構(gòu)建流水號),?
  274. 還是每次都使用相同的版本號?參見repositories/repository元素-->
  275. <uniqueVersion/>
  276. <id>banseon-maven2</id>
  277. <name>banseon maven2</name>
  278. <url>file://${basedir}/target/deploy</url>
  279. <layout/>
  280. </repository>
  281. <!--構(gòu)件的快照部署到哪里,?如果沒有配置該元素,,默認(rèn)部署到repository元素配置的倉庫,
  282. 參見distributionManagement/repository元素-->
  283. <snapshotRepository>
  284. <uniqueVersion/>
  285. <id>banseon-maven2</id>
  286. <name>Banseon-maven2 Snapshot Repository</name>
  287. <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
  288. <layout/>
  289. </snapshotRepository>
  290. <!--部署項目的網(wǎng)站需要的信息-->
  291. <site>
  292. <!--部署位置的唯一標(biāo)識符,,用來匹配站點(diǎn)和settings.xml文件里的配置-->
  293. <id>banseon-site</id>
  294. <!--部署位置的名稱-->
  295. <name>business api website</name>
  296. <!--部署位置的URL,,按protocol://hostname/path形式-->
  297. <url>
  298. scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
  299. </url>
  300. </site>
  301. <!--項目下載頁面的URL。如果沒有該元素,用戶應(yīng)該參考主頁,。
  302. 使用該元素的原因是:幫助定位那些不在倉庫里的構(gòu)件(由于license限制),。-->
  303. <downloadUrl/>
  304. <!-- 給出該構(gòu)件在遠(yuǎn)程倉庫的狀態(tài)。不得在本地項目中設(shè)置該元素,,
  305. 因?yàn)檫@是工具自動更新的,。有效的值有:none(默認(rèn)),
  306. converted(倉庫管理員從 Maven 1 POM轉(zhuǎn)換過來),,partner(直接從伙伴Maven 2倉庫同步過來),,deployed(從Maven 2實(shí)例部 署),verified(被核實(shí)時正確的和最終的),。-->
  307. <status/>
  308. </distributionManagement>
  309. <!--以值替代名稱,,Properties可以在整個POM中使用,也可以作為觸發(fā)條件(見settings.xml配置文件里activation元素的說明),。格式是<name>value</name>,。-->
  310. <properties/>
  311. </project>

參考原文:Maven使用詳解

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多