1. 程式人生 > >170911-關於maven的知識點

170911-關於maven的知識點

插件 自己 如何 數學 gen 沒有 ner let servle

簡介: 什麽是maven

是apache下的一個開源項目,是純java開發,並且只是用來管理java項目的.

Maven的好處?

節省空間

就是對jar包的統一管理就是對jar包的統一管理,依賴管理

一鍵構建, 可跨平臺

1.自動化構建和項目管理工具

Ant→Make→Maven→Gradle

2.Maven概述

①讀音:妹文、麥文

②Maven作用一:自動化構建

③Maven作用二:依賴管理

④Maven作用三:項目信息管理

3.自動化構建

①構建[build]:將程序員編寫的代碼從源文件到服務器部署的整個過程。

清理→編譯→測試→報告→打包→部署→運行……

②自動化構建:將構建過程中的各個操作步驟交給構建工具自動完成。

4.依賴管理

①依賴復雜性

[1]路徑最短者優先

MakeFriends --------> HelloFriends----------->Hello

||

log4j.2.1.14 -------> log4j.2.1.17

[2]路徑相同時,先聲明者優先

MakeFriends --------> HelloFriends ------>log4j.2.1.14

-------------->OurFriends ------->log4j.2.1.17

②版本沖突的解決方案

[1]調節原則:

[1]路徑最短者優先原則

[2]路徑相同時,先聲明者優先原則

[2]排除原則

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<exclusions>

<exclusion>

<groupId></groupId>

<artifactId></artifactId>

<!--這裏不需要指定版本號 -->

</exclusion>

</exclusions>

<scope>provided</scope>

</dependency>

[3]版本鎖定原則

<dependencyManagement>

<dependencies>

<dependency>

<!--jar包坐標 -->

<groupId></groupId>

<artifactId></artifactId>

<version></version>

</dependency>

</dependencies>

</dependencyManagement>

版本鎖定之後,後面再使用到這個的 依賴的時候,就不要寫版本號了!

而且如果有多個相同的需要鎖定的jar包的版本號一致的話,我們可以單獨提取到properties標簽中,

在properties標簽中,子標簽自己定義,標簽的值就是版本號,下面只需要在依賴的地方用${}引用就可以了!

③依賴方式

[1]在pom.xml配置文件中使用dependencies/dependency元素配置依賴信息

[2]通過目標jar包的坐標找到被依賴的文件

④依賴範圍

默認compile:當前所依賴的jar包是當前Maven工程中所有類都需要使用的,最終也需要參與打包。

test:只是當前工程中的測試類需要,最終不參與打包。

provided:當工程在服務器上運行起來後,可以由服務器提供,所以也只是在開發或測試時使用,部署到服務器上時就不需要。 ……

⑤一個自己開發的Maven工程,需要執行“安裝”命令,才能夠被放入到倉庫中。

5.項目信息管理 將項目信息生成一個靜態站點,用於展示。

6.Maven程序本身安裝

①要求當前系統環境下配置了JAVA_HOME

在CMD命令行中輸入:echo %JAVA_HOME% 如果能出來JDK的安裝目錄,說明我們配置了JAVA環境

②將Maven的ZIP壓縮包解壓到一個非中文無空格目錄下【maven.apache.org官方網站下載jar包】

apache-maven-3.3.9-bin.zip

③.配置環境變量,用mvn -v查看是否正確配置了maven【要配置jdk, maven3.3.9這個版本所需的jdk版本必須要1.7以上】

path:

D:\DevSoft\apache-maven-3.3.9\bin

mvn -v查看maven版本

④.先了解一下maven的目錄結構:

projectname

-src

-main

-java

-package

-resources【配置文件或者說資源文件】

-test

-java

-package

-resources

pom.xml

按照上面的maven的目錄結構創建一個maven項目,參照word文檔!

⑤當針對某個Maven工程執行諸如“編譯”、“測試”、“打包”、“部署”等命令時,需要進入到pom.xml所在的目錄下執行。

7.關於Maven聯網

①聯網下載內容:當前命令需要的Maven插件

②Maven主程序僅負責宏觀調度,並不能執行具體的命令。而具體的命令是通過Maven插件完成的。

③Maven主程序會首先到本地倉庫目錄下查找需要的插件,若沒有則聯網從“中央倉庫”下載。若當前環境不能聯網則無法執行構建命令。

④可以修改Maven默認的本地倉庫路徑,使其指向一個提前下載好的目錄 配置文件路徑

Maven解壓目錄/conf/settings.xml

修改

<localRepository>D:\Maven\Repository</localRepository>

mvn -v 查看maven的版本號

clean

compile 編譯

test 測試

package 打包(並將jar包放入到target的目錄中)

site 生成一個站點

clean 刪除target目錄

install 安裝jar包到本地倉庫中

自動創建目錄的兩種方式:

1.mvn archetype:generate 按照提示進行選擇

2.mvn archetype:generate -DgroupId=組織名,公司網址的反寫+項目名

-DartifactId=項目名-模塊名

-Dversion=版本號

-Dpackage=代碼所存在的包名

8.Project Object Model項目對象模型

①Maven將一個Java工程的相關信息封裝後得到的對象。簡稱POM。

②POM配置集中體現在pom.xml文件中,作為一個Maven工程,pom.xml是最核心的配置文件,作用相當於動態Web工程的web.xml。

9.約定的目錄結構

①Maven之所以能夠實現自動化構建,其中一個很重要的原因是要求將特定的文件保存在指定的目錄中。

Hello [工程根目錄]

--src [存放源代碼文件]

-----main [存放主程序目錄]

---------java [存放.java源文件]

---------resources [資源文件或配置文件]

-----test [存放測試程序目錄]

---------java [存放.java源文件]

---------resources [資源文件或配置文件]

--pom.xml 核心配置文件]

②思想:Convention Over Configuration 約定優於配置

10.maven的幾個概念:

1.坐標

①數學坐標:平面中使用橫縱兩個坐標系可以唯一的定位平面中的任何一個點。

向量x:橫坐標 向量y:縱坐標

②使用三個向量在Maven倉庫中唯一的定位一個Maven工程。

向量groupid:公司或組織的名稱+項目名稱 向量artifactId:模塊名稱 向量version:模塊版本

<groupId>com.neuedu.maven</groupId>

<artifactId>Hello</artifactId>

<version>0.0.1-SNAPSHOT</version>

③如何根據坐標zhao到倉庫中查找對應的Maven工程

坐標

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.0.0.RELEASE</version>

倉庫中的路徑

org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar

④如何查找指定jar包的坐標:

1.從maven倉庫下載

http://search.maven.org/

http://mvnrepository.com/【建議使用這個】

170911-關於maven的知識點