Maven第三篇【Maven術語、pom.xml介紹】

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座標

  1. 座標的組成: groupId + artifactId+ version

    • groupId:組id ,機構名,公司名:好比公司的id,或者是公司包名
      alibaba ——-》高德–》5.01版本
    • artifactId:構建物id ,產品名或者產品的id
    • version :版本號
  2. 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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章