maven術語
在我們上一篇中已經知道了在Intellij idea下是如何使用Maven的了,創建出來的目錄結構是這樣子的:
上面的目錄結構就是Maven所謂的”約定“,我們使用Maven來構建Java項目,都是這種目錄結構的…
接下來我們來了解一下Mavaen一些常用的術語
倉庫
本地倉庫
- Maven會把我們項目所構建出來的jar包等等資源存放在本地倉庫中。當我們需要jar包的時候,Maven第一時間也是去本地倉庫中尋找jar包
中心倉庫:
-* 當Maven在本地倉庫和私服找不到我們需要的jar包的時候,就去中心倉庫中幫我們下載對應的jar包*。那Maven怎麼知道去哪裏下載呢??其實Maven已經配置好的了
apache-maven-3.2.1\lib\maven-model-builder-3.2.1\org\apache\maven\model下的POM.xml文件中已經配置好了
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
私有服務器
- 存儲一些jar包的服務器,由於本地倉庫不可能擁有大部分的jar包,一個團隊要去開發,免不了總是去中心倉庫下載,這就非常耗費時間了。如果私有服務器擁有這些jar包,那麼每臺電腦就不用去中心倉庫中下載了…
maven軟件構建的生命週期
軟件的生命週期就是以下
-* 清除–> 編譯–>測試–>報告–>打包(jar\war)–>安裝–>部署*
maven生命週期命令插件
當我們使用idea環境下開發,maven生命週期的插件就非常清晰了…
maven座標
座標的組成: groupId + artifactId+ version
- groupId:組id ,機構名,公司名:好比公司的id,或者是公司包名
alibaba ——-》高德–》5.01版本 - artifactId:構建物id ,產品名或者產品的id
- version :版本號
- groupId:組id ,機構名,公司名:好比公司的id,或者是公司包名
jar包組成:
artifactId-version.jar
pom.xml介紹
pom.xml介紹 :project object model 項目對象模型 ,它是maven核心配置文件
當我們把上面的術語瞭解完以後,對下面pom.xml配置文件就不會感到陌生了。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zhongfucheng3</groupId>
<artifactId>zhongfucheng3</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
如果我們想要我們的項目能夠有Junit測試的開發包,我們只要指定對應的jar包依賴就行了..
scope應用範圍有test、compile等等,默認是compile,那麼test和compile有什麼區別呢?
- 間接依賴問題 :依賴的jar包必須是 compile 範圍,假如是test範圍,則發佈的jar包不會包含test範圍依賴的jar包,和依賴關係
<scope>test</scope>