2019互聯(lián)網(wǎng)面試系列項目管理工具之Maven系列1

Maven基礎(chǔ)

第1章Maven介紹

1.1 什么是Maven

1.1.1 什么是Maven

Maven的正確發(fā)音是[?mev?n],而不是“馬瘟”以及其他什么瘟。Maven在美國是一個口語化的詞語,代表專家、內(nèi)行的意思。
一個對Maven比較正式的定義是這么說的:Maven是一個項目管理工具,它包含了一個項目對象模型 (POMProject Object Model),一組標(biāo)準(zhǔn)集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

1.1.2 Maven能解決什么問題

? 可以用更通俗的方式來說明。我們知道,項目開發(fā)不僅僅是寫寫代碼而已,期間會伴隨著各種必不可少的事情要做,下面列舉幾個感受一下:

  • 我們需要引用各種jar包,尤其是比較大的工程,引用的jar包往往有幾十個乃至上百個, 每用到一種jar包,都需要手動引入工程目錄,而且經(jīng)常遇到各種讓人抓狂的jar包沖突,版本沖突。
  • 我們辛辛苦苦寫好了Java文件,可是只懂0和1的白癡電腦卻完全讀不懂,需要將它編譯成二進制字節(jié)碼。好歹現(xiàn)在這項工作可以由各種集成開發(fā)工具幫我們完成,Eclipse、IDEA等都可以將代碼即時編譯。當(dāng)然,如果你嫌生命漫長,何不鋪張,也可以用記事本來敲代碼,然后用javac命令一個個地去編譯,逗電腦玩。
  • 世界上沒有不存在bug的代碼,計算機喜歡bug就和人們總是喜歡美女帥哥一樣。為了追求美為了減少bug,因此寫完了代碼,我們還要寫一些單元測試,然后一個個的運行來檢驗代碼質(zhì)量。
  • 再優(yōu)雅的代碼也是要出來賣的。我們后面還需要把代碼與各種配置文件、資源整合到一起,定型打包,如果是web項目,還需要將之發(fā)布到服務(wù)器,供人蹂躪。
    試想,如果現(xiàn)在有一種工具,可以把你從上面的繁瑣工作中解放出來,能幫你構(gòu)建工程,管理jar包,編譯代碼,還能幫你自動運行單元測試,打包,生成報表,甚至能幫你部署項目,生成Web站點,你會心動嗎?Maven就可以解決上面所提到的這些問題。

1.1.3 Maven的優(yōu)勢舉例

前面我們通過Web階段項目,要能夠?qū)㈨椖窟\行起來,就必須將該項目所依賴的一些jar包添加到工程中,否則項目就不能運行。試想如果具有相同架構(gòu)的項目有十個,那么我們就需要將這一份jar包復(fù)制到十個不同的工程中。我們一起來看一個CRM項目的工程大小。
使用傳統(tǒng)Web項目構(gòu)建的CRM項目如下:


沒有使用maven之前

原因主要是因為上面的WEB程序要運行,我們必須將項目運行所需的Jar包復(fù)制到工程目錄中,從而導(dǎo)致了工程很大。
同樣的項目,如果我們使用Maven工程來構(gòu)建,會發(fā)現(xiàn)總體上工程的大小會少很多。如下圖:


使用maven之后

小結(jié):可以初步推斷它里面一定沒有jar 包,繼續(xù)思考,沒有jar包的項目怎么可能運行呢?

1.2 Maven的兩個精典作用

1.2.1 Maven的依賴管理

Maven的一個核心特性就是依賴管理。當(dāng)我們涉及到多模塊的項目(包含成百個模塊或者子項目),管理依賴就變成一項困難的任務(wù)。Maven展示出了它對處理這種情形的高度控制。
傳統(tǒng)的WEB項目中,我們必須將工程所依賴的jar包復(fù)制到工程中,導(dǎo)致了工程的變得很大。那么maven工程是如何使得工程變得很少呢?
分析如下:


maven依賴管理

通過分析發(fā)現(xiàn):maven工程中不直接將jar包導(dǎo)入到工程中,而是通過在pom.xml文件中添加所需jar包的坐標(biāo),這樣就很好的避免了jar直接引入進來,在需要用到j(luò)ar包的時候,只要查找pom.xml文件,再通過pom.xml文件中的坐標(biāo),到一個專門用于”存放jar包的倉庫”(maven倉庫)中根據(jù)坐標(biāo)從而找到這些jar包,再把這些jar包拿去運行。
那么問題來了
第一:”存放jar包的倉庫”長什么樣?
第二:通過讀取pom.xml 文件中的坐標(biāo),再到倉庫中找到j(luò)ar包,會不會很慢?從而導(dǎo)致這種方式不可行!
第一個問題:存放jar包的倉庫長什么樣,這一點我們后期會分析倉庫的分類,也會帶大家去看我們的本地的倉庫長什么樣。
第二個問題:通過pom.xml文件配置要引入的jar包的坐標(biāo),再讀取坐標(biāo)并到倉庫中加載jar包,這樣我們就可以直接使用jar包了,為了解決這個過程中速度慢的問題,maven中也有索引的概念,通過建立索引,可以大大提高加載jar包的速度,使得我們認(rèn)為jar包基本跟放在本地的工程文件中再讀取出來的速度是一樣的。這個過程就好比我們查閱字典時,為了能夠加快查找到內(nèi)容,書前面的目錄就好比是索引,有了這個目錄我們就可以方便找到內(nèi)容了,一樣的在maven倉庫中有了索引我們就可以認(rèn)為可以快速找到j(luò)ar包。

1.2.2 項目的一鍵構(gòu)建

我們的項目,往往都要經(jīng)歷編譯、測試、運行、打包、安裝 ,部署等一系列過程。
什么是構(gòu)建?
指的是項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給maven進行管理,這個過程稱為構(gòu)建。
一鍵構(gòu)建指的是整個構(gòu)建過程,使用maven一個命令可以輕松完成整個工作。
Maven規(guī)范化構(gòu)建流程如下:


maven項目構(gòu)建

我們一起來看Hello-Maven工程的一鍵運行的過程。通過tomcat:run的這個命令,我們發(fā)現(xiàn)現(xiàn)在的工程編譯,測試,運行都變得非常簡單。

第2章Maven的使用

2.1 Maven的安裝

2.1.1 Maven軟件的下載

為了使用Maven管理工具,我們首先要到官網(wǎng)去下載它的安裝軟件。通過百度搜索“Maven“如下:

軟件下載

點擊Download鏈接,就可以直接進入到Maven軟件的下載頁面:
下載頁面

目前最新版是apache-maven-3.5.3版本,我們當(dāng)時使用的是apache-maven-3.5.2版本,大家也可以下載最新版本。
Apache-maven-3.5.2下載地址:http://archive.apache.org/dist/maven/maven-3/
下載后的版本如下:
文件預(yù)覽

2.1.2 Maven軟件的安裝

Maven下載后,將Maven解壓到一個沒有中文沒有空格的路徑下,比如D:\software\maven下面。
解壓后目錄結(jié)構(gòu)如下:


目錄結(jié)構(gòu)

bin:存放了maven的命令,比如我們前面用到的mvn tomcat:run
boot:存放了一些maven本身的引導(dǎo)程序,如類加載器等
conf:存放了maven的一些配置文件,如setting.xml文件
lib:存放了maven本身運行所需的一些jar包
至此我們的maven軟件就可以使用了,前提是你的電腦上之前已經(jīng)安裝并配置好了JDK。

2.1.3 JDK的準(zhǔn)備及統(tǒng)一

本次課程我們所使用工具軟件的統(tǒng)一,JDK使用JDK8版本
![jdk版本(https://upload-images.jianshu.io/upload_images/598604-01e86e8be1140e9e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.1.4 Maven及JDK配置

電腦上需安裝java環(huán)境,安裝JDK1.7 + 版本 (將JAVA_HOME/bin 配置環(huán)境變量path ),我們使用的是JDK8相關(guān)版本
配置 MAVEN_HOME ,變量值就是你的maven安裝 的路徑(bin目錄之前一級目錄)


maven環(huán)境變量配置

上面配置了我們的Maven軟件,注意這個目錄就是之前你解壓maven的壓縮文件包在的的目錄,最好不要有中文和空格。
再次檢查JDK的安裝目錄,如下圖:


jdk版本檢查

2.1.5 Maven軟件版本測試

通過 mvn -v命令檢查 maven是否安裝成功,看到maven的版本為3.5.2及java版本為1.8即為安裝成功。
找開cmd命令,輸入mvn –v命令,如下圖:


maven版本查看

我們發(fā)現(xiàn)maven的版本,及jdk的版本符合要求,這樣我們的maven軟件安裝就成功了。

2.2 Maven倉庫

2.2.1 Maven倉庫的分類

maven的工作需要從倉庫下載一些jar包,如下圖所示,本地的項目A、項目B等都會通過maven軟件從遠(yuǎn)程倉庫(可以理解為互聯(lián)網(wǎng)上的倉庫)下載jar包并存在本地倉庫,本地倉庫 就是本地文件夾,當(dāng)?shù)诙涡枰薺ar包時則不再從遠(yuǎn)程倉庫下載,因為本地倉庫已經(jīng)存在了,可以將本地倉庫理解為緩存,有了本地倉庫就不用每次從遠(yuǎn)程倉庫下載了。
下圖描述了maven中倉庫的類型:


maven倉庫類型
  • 本地倉庫 :用來存儲從遠(yuǎn)程倉庫或中央倉庫下載的插件和jar包,項目使用一些插件或jar包,優(yōu)先從本地倉庫查找 ,默認(rèn)本地倉庫位置在 {user.dir}/.m2/repository,{user.dir}表示windows用戶目錄。
    默認(rèn)庫存位置
  • 遠(yuǎn)程倉庫:如果本地需要插件或者jar包,本地倉庫沒有,默認(rèn)去遠(yuǎn)程倉庫下載。
    遠(yuǎn)程倉庫可以在互聯(lián)網(wǎng)內(nèi)也可以在局域網(wǎng)內(nèi)。
  • 中央倉庫 :在maven軟件中內(nèi)置一個遠(yuǎn)程倉庫地址http://repo1.maven.org/maven2 ,它是中央倉庫,服務(wù)于整個互聯(lián)網(wǎng),它是由Maven團隊自己維護,里面存儲了非常全的jar包,它包含了世界上大部分流行的開源項目構(gòu)件。

2.2.2 Maven本地倉庫的配置

我本地倉庫的目錄是:D:\repository(可以放在沒有中文及空格的目錄下)。


倉庫位置

在MAVE_HOME/conf/settings.xml文件中配置本地倉庫位置(maven的安裝目錄下):


setting文件

打開settings.xml文件,配置如下:
setting文件修改

2.2.3 全局setting與用戶setting

? maven倉庫地址、私服等配置信息需要在setting.xml文件中配置,分為全局配置和用戶配置。
? 在maven安裝目錄下的有 conf/setting.xml文件,此setting.xml文件用于maven的所有project項目,它作為maven的全局配置。
? 如需要個性配置則需要在用戶配置中設(shè)置,用戶配置的setting.xml文件默認(rèn)的位置在:{user.dir} /.m2/settings.xml目錄中,{user.dir} 指windows 中的用戶目錄。
? maven會先找用戶配置,如果找到則以用戶配置文件為準(zhǔn),否則使用全局配置文件。

全局文件

2.3 Maven工程的認(rèn)識

2.3.1 Maven工程的目錄結(jié)構(gòu)

maven工程介紹

作為一個maven工程,它的src目錄和pom.xml是必備的。
進入src目錄后,我們發(fā)現(xiàn)它里面的目錄結(jié)構(gòu)如下:


src目錄

src/main/java —— 存放項目的.java文件
src/main/resources —— 存放項目資源文件,如spring, hibernate配置文件
src/test/java —— 存放所有單元測試.java文件,如JUnit測試類
src/test/resources —— 測試資源文件
target —— 項目輸出位置,編譯后的class文件會輸出到此目錄
pom.xml——maven項目核心配置文件

注意:如果是普通的java項目,那么就沒有webapp目錄。

2.3.2 Maven工程的運行

進入maven工程目錄(當(dāng)前目錄有pom.xml文件),運行tomcat:run命令。

maven工程運行

根據(jù)上邊的提示信息,通過瀏覽器訪問:http://localhost:8080/maven-helloworld/
瀏覽器瀏覽

2.3.3 問題處理

如果本地倉庫配置錯誤會報下邊的錯誤


沒有本地倉庫運行報錯

分析:
maven工程運行先從本地倉庫找jar包,本地倉庫沒有再從中央倉庫找,上邊提示downloading…
表示 從中央倉庫下載jar,由于本地沒有聯(lián)網(wǎng),報錯。
解決:
在maven安裝目錄的conf/setting.xml文件中配置本地倉庫,參考:“maven倉庫/配置本地倉庫章節(jié)”。

第3章 Maven常用命令

我們可以在cmd中通過一系列的maven命令來對我們的maven-helloworld工程進行編譯、測試、運行、打包、安裝、部署。

3.1.1 compile

compile是maven工程的編譯命令,作用是將src/main/java下的文件編譯為class文件輸出到target目錄下。
cmd進入命令狀態(tài),執(zhí)行mvn compile,如下圖提示成功:


24.jpg

查看 target目錄,class文件已生成,編譯完成。


25.jpg

3.1.2 test

test是maven工程的測試命令 mvn test,會執(zhí)行src/test/java下的單元測試類。
cmd執(zhí)行mvn test執(zhí)行src/test/java下單元測試類,下圖為測試結(jié)果,運行1個測試用例,全部成功。


26.jpg

3.1.3clean

clean是maven工程的清理命令,執(zhí)行 clean會刪除target目錄及內(nèi)容。

3.1.4 package

package是maven工程的打包命令,對于java工程執(zhí)行package打成jar包,對于web工程打成war包。

3.1.5 install

install是maven工程的安裝命令,執(zhí)行install將maven打成jar包或war包發(fā)布到本地倉庫。
從運行結(jié)果中,可以看出:
當(dāng)后面的命令執(zhí)行時,前面的操作過程也都會自動執(zhí)行,

3.0.6 Maven指令的生命周期

maven對項目構(gòu)建過程分為三套相互獨立的生命周期,請注意這里說的是“三套”,而且“相互獨立”,這三套生命周期分別是:

  • Clean Lifecycle 在進行真正的構(gòu)建之前進行一些清理工作。
  • Default Lifecycle 構(gòu)建的核心部分,編譯,測試,打包,部署等等。
  • Site Lifecycle 生成項目報告,站點,發(fā)布站點。

3.1.7 maven的概念模型

Maven包含了一個項目對象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。
項目對象模型
  • 項目對象模型 (Project Object Model)
    一個maven工程都有一個pom.xml文件,通過pom.xml文件定義項目的坐標(biāo)、項目依賴、項目信息、插件目標(biāo)等。
  • 依賴管理系統(tǒng)(Dependency Management System)
    通過maven的依賴管理對項目所依賴的jar 包進行統(tǒng)一管理。
    比如:項目依賴junit4.9,通過在pom.xml中定義junit4.9的依賴即使用junit4.9,如下所示是junit4.9的依賴定義:
    <!-- 依賴關(guān)系 -->
        <dependencies>
            <!-- 此項目運行使用junit,所以此項目依賴junit -->
            <dependency>
                <!-- junit的項目名稱 -->
                <groupId>junit</groupId>
                <!-- junit的模塊名稱 -->
                <artifactId>junit</artifactId>
                <!-- junit版本 -->
                <version>4.9</version>
                <!-- 依賴范圍:單元測試時使用junit -->
                <scope>test</scope>
            </dependency>
        </dependencies>
    
  • 一個項目生命周期(Project Lifecycle)
    ? 使用maven完成項目的構(gòu)建,項目構(gòu)建包括:清理、編譯、測試、部署等過程,maven將這些過程規(guī)范為一個生命周期,如下所示是生命周期的各各階段:


    生命周期

    maven通過執(zhí)行一些簡單命令即可實現(xiàn)上邊生命周期的各各過程,比如執(zhí)行mvn compile執(zhí)行編譯、執(zhí)行mvn clean執(zhí)行清理。

  • 一組標(biāo)準(zhǔn)集合
    ? maven將整個項目管理過程定義一組標(biāo)準(zhǔn),比如:通過maven構(gòu)建工程有標(biāo)準(zhǔn)的目錄結(jié)構(gòu),有標(biāo)準(zhǔn)的生命周期階段、依賴管理有標(biāo)準(zhǔn)的坐標(biāo)定義等。
  • 插件(plugin)目標(biāo)(goal)
    maven 管理項目生命周期過程都是基于插件完成的。

3.1 idea開發(fā)maven項目

在實戰(zhàn)的環(huán)境中,我們都會使用流行的工具來開發(fā)項目。

3.1.1 idea的maven配置

3.1.1.1 打開File--->Settings-->配置maven

依據(jù)圖片指示,選擇本地maven安裝目錄,指定maven安裝目錄下conf文件夾中settings配置文件。


maven設(shè)置

3.1.2 idea中創(chuàng)建一個maven的web工程

打開idea,選擇創(chuàng)建一個新工程


創(chuàng)建新工程

選擇idea提供好的maven的web工程模板


使用web模塊創(chuàng)建

點擊Next填寫項目信息
項目信息

點擊Next,此處不做改動。


33.jpg

點擊Next選擇項目所在目錄
選擇項目位置

點擊Finish后開始創(chuàng)建工程,耐心等待,直到出現(xiàn)如下界面。
創(chuàng)建項目

手動添加src/main/java目錄,如下圖右鍵main文件夾NewDirectory,創(chuàng)建一個新的文件夾命名為java
完善目錄

點擊OK后,在新的文件夾java上右鍵Make Directory as Sources Root
完善目錄

3.1.2.1 創(chuàng)建一個Servlet

src/java/main創(chuàng)建了一個Servlet,但報錯


servlet項目報錯

要解決問題,就是要將servlet-api-xxx.jar包放進來,作為maven工程應(yīng)當(dāng)添加servlet的坐標(biāo),從而導(dǎo)入它的jar

3.1.2.2 在pom.xml文件添加坐標(biāo)

直接打開maven_demo工程的pom.xml文件,再添加坐標(biāo)


添加依賴

添加jar包的坐標(biāo)時,還可以指定這個jar包將來的作用范圍。
每個maven工程都需要定義本工程的坐標(biāo),坐標(biāo)是maven對jar包的身份定義,比如:入門程序的坐標(biāo)定義如下:

<!--項目名稱,定義為組織名+項目名,類似包名-->
  <groupId>cn.veliger</groupId>
  <!--模塊名稱-->
  <artifactId>maven_demo</artifactId>
  <!--版本-->
  <version>1.0-SNAPSHOT</version>
  <!--打包類型 jar,war或者pom-->
  <packaging>war</packaging>

3.1.2.3 坐標(biāo)的來源方式

添加依賴需要指定依賴jar包的坐標(biāo),但是很多情況我們是不知道jar包的的坐標(biāo),可以通過如下方式查詢:

3.1.2.3.1 從互聯(lián)網(wǎng)搜索

? http://search.maven.org/
? http://mvnrepository.com/
網(wǎng)站搜索示例:

網(wǎng)站搜索

網(wǎng)站搜索

3.1.3 依賴范圍

A依賴B,需要在A的pom.xml文件中添加B的坐標(biāo),添加坐標(biāo)時需要指定依賴范圍,依賴范圍包括:

  • compile:編譯范圍,指A在編譯時依賴B,此范圍為默認(rèn)依賴范圍。編譯范圍的依賴會用在編譯、測試、運行,由于運行時需要所以編譯范圍的依賴會被打包。
  • provided:provided依賴只有在當(dāng)JDK或者一個容器已提供該依賴之后才使用, provided依賴在編譯和測試時需要,在運行時不需要,比如:servlet api被tomcat容器提供。
  • runtime:runtime依賴在運行和測試系統(tǒng)的時候需要,但在編譯的時候不需要。比如:jdbc的驅(qū)動包。由于運行時需要所以runtime范圍的依賴會被打包。
  • test:test范圍依賴 在編譯和運行時都不需要,它們只有在測試編譯和測試運行階段可用,比如:junit。由于運行時不需要所以test范圍依賴不會被打包。
  • system:system范圍依賴與provided類似,但是你必須顯式的提供一個對于本地系統(tǒng)中JAR文件的路徑,需要指定systemPath磁盤路徑,system依賴不推薦使用。


    43.jpg

    在maven-demo工程中測試各各scop。
    測試總結(jié):
    默認(rèn)引入 的jar包 ------- compile 【默認(rèn)范圍 可以不寫】(編譯、測試、運行 都有效 )

  • servlet-api 、jsp-api ------- provided (編譯、測試 有效, 運行時無效 防止和tomcat下jar沖突)
  • jdbc驅(qū)動jar包 ---- runtime (測試、運行 有效 )
  • junit ----- test (測試有效)
  • 依賴范圍由強到弱的順序是:compile>provided>runtime>test

3.1.4 項目中添加的坐標(biāo)

添加依賴

3.1.5 設(shè)置jdk編譯版本

? 本教程使用jdk1.8,需要設(shè)置編譯版本為1.8,這里需要使用maven的插件來設(shè)置:
在pom.xml中加入:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

3.1.6 編寫servlet

在src/main/java中創(chuàng)建ServletTest

package cn.veliger.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * Description
 *
 * @author veliger@163.com
 * @version 1.0
 * @date 2019-03-13 10:26
 **/
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/hello.jsp").forward(request,response);
    }
}

3.1.7 編寫jsp

在src/main/webapp下編寫hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>mavenWeb工程學(xué)習(xí)</title>
</head>
<body>
    <h4>歡迎學(xué)習(xí)maven系列教程</h4>
</body>
</html>

3.1.8 在web.xml中配置servlet訪問路徑

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>servletDemo</servlet-name>
    <servlet-class>cn.veliger.servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servletDemo</servlet-name>
    <url-pattern>/maven</url-pattern>
  </servlet-mapping>
</web-app>

3.1.9 添加tomcat7插件

在pom文件中添加如下內(nèi)容

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8080</port>
        <path>/</path>
    </configuration>
</plugin>

此時點擊idea最右側(cè)Maven Projects,
就可以看到我們新添加的tomcat7插件
雙擊tomcat7插件下tomcat7:run命令直接運行項目


Tomcat插件

3.1.10 運行結(jié)果

運行結(jié)果

第4章 maven工程運行調(diào)試

4.1 端口占用處理

重新執(zhí)行tomcat:run命令重啟工程,重啟之前需手動停止 tomcat,否則報下邊的錯誤:


端口占用

第5章 總結(jié)

5.1 maven倉庫

  • maven倉庫的類型有哪些?
  • maven工程查找倉庫的流程是什么?
  • 本地倉庫如何配置?

5.2 常用的maven命令

常用 的maven命令包括:

  • compile:編譯
  • clean:清理
  • test:測試
  • package:打包
  • install:安裝

5.3 坐標(biāo)定義

在pom.xml中定義坐標(biāo),內(nèi)容包括:groupId、artifactId、version,詳細(xì)內(nèi)容如下:

<!--項目名稱,定義為組織名+項目名,類似包名-->
    <groupId>cn.veliger</groupId>
    <!--模塊名稱-->
    <artifactId>maven_demo</artifactId>
    <!--版本-->
    <version>1.0-SNAPSHOT</version>
    <!--打包類型 jar,war或者pom-->
    <packaging>war</packaging>

5.4 pom基本配置

pom.xml是Maven項目的核心配置文件,位于每個工程的根目錄,基本配置如下:

  • <project > :文件的根節(jié)點 .
  • <modelversion > : pom.xml使用的對象模型版本
  • <groupId > :項目名稱,一般寫項目的域名
  • <artifactId > :模塊名稱,子項目名或模塊名稱
  • <version > :產(chǎn)品的版本號 .
  • <packaging > :打包類型,一般有jar、war、pom 等
  • <name > :項目的顯示名,常用于 Maven 生成的文檔。
  • <description > :項目描述,常用于 Maven 生成的文檔
  • <dependencies> :項目依賴構(gòu)件配置,配置項目依賴構(gòu)件的坐標(biāo)
  • <build> :項目構(gòu)建配置,配置編譯、運行插件等。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容