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

maven術語

在咱們上一篇中已經知道了在Intellij idea下是如何使用Maven的了,建立出來的目錄結構是這樣子的:apache

這裏寫圖片描述

上面的目錄結構就是Maven所謂的」約定「,咱們使用Maven來構建Java項目,都是這種目錄結構的…服務器

接下來咱們來了解一下Mavaen一些經常使用的術語markdown

倉庫

本地倉庫maven

  • Maven會把咱們項目所構建出來的jar包等等資源存放在本地倉庫中。當咱們須要jar包的時候,Maven第一時間也是去本地倉庫中尋找jar包

中心倉庫:ide

-* 當Maven在本地倉庫和私服找不到咱們須要的jar包的時候,就去中心倉庫中幫咱們下載對應的jar包*。那Maven怎麼知道去哪裏下載呢??其實Maven已經配置好的了測試

apache-maven-3.2.1\lib\maven-model-builder-3.2.1\org\apache\maven\model下的POM.xml文件中已經配置好了ui

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

私有服務器url

  • 存儲一些jar包的服務器,因爲本地倉庫不可能擁有大部分的jar包,一個團隊要去開發,免不了老是去中心倉庫下載,這就很是耗費時間了。若是私有服務器擁有這些jar包,那麼每臺電腦就不用去中心倉庫中下載了…

maven軟件構建的生命週期

軟件的生命週期就是如下idea

-* 清除–> 編譯–>測試–>報告–>打包(jar\war)–>安裝–>部署*spa

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>
相關文章
相關標籤/搜索