maven 系列 2-Default Lifecycle 及建立java項(xiàng)目

舉例講解Maven的使用及生命周期

通過(guò)實(shí)際對(duì)maven進(jìn)行操作講解maven的使用

maven安裝

maven官方下載地址

http://maven.apache.org/download.cgi

配置環(huán)境變量

==注意:安裝maven之前,必須先確保你的機(jī)器中已經(jīng)安裝了JDK,否則無(wú)法編譯==

  1. 解壓下載的壓縮包
  2. 添加環(huán)境變量MAVEN_HOME,值為解壓后的文件夾的路徑,例如放在D盤(新裝的時(shí)候應(yīng)該是新建,我這里已經(jīng)裝好,只是為了舉例),如圖所示:
mvn 環(huán)境變量
  1. 在Path環(huán)境變量的變量值末尾添加

%MAVEN_HOME%\bin

  1. 在cmd輸入

mvn –version

如果出現(xiàn)maven和jdk的版本信息,說(shuō)明配置成功,如下圖:


mvn 安裝成功

啟用代理訪問(wèn)

依據(jù)自身網(wǎng)絡(luò)環(huán)境決定是否添加代理,如果需要添加,在 Maven 的配置文件中設(shè)置代理服務(wù)器:{MAVEN_HOME}/conf/settings.xml,找到下面這段,改成你的代理服務(wù)器。

    <proxies>
<!-- proxy
 | Specification for one proxy, to be used in connecting to the network.
 |
<proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>http</protocol>
  <username>proxyuser</username>
  <password>proxypass</password>
  <host>proxy.host.net</host>
  <port>80</port>
  <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
--></proxies>

把注釋去掉,host這里填寫代理服務(wù)器的地址(可以用IP)以及port端口,如果需要用戶名/密碼認(rèn)證,則填寫username/password節(jié)點(diǎn),否則username/password這二個(gè)節(jié)點(diǎn)去掉,nonProxyHosts表示某些地址不需要經(jīng)過(guò)代理服務(wù)器,多個(gè)地址之間用|分隔,支持通配符,比如172.156.*

本地倉(cāng)庫(kù)配置

從中央倉(cāng)庫(kù)下載的jar包,都會(huì)統(tǒng)一存放到本地倉(cāng)庫(kù)中。我們需要配置本地倉(cāng)庫(kù)的位置。默認(rèn)是在c盤的用戶下,但一般我們都不用這個(gè)地址。
打開{MAVEN_HOME}/conf/settings.xml,修改倉(cāng)庫(kù)地址:
<localRepository>D:\maven\m2\repository</localRepository>可以修改成這樣,便于識(shí)別就好。

使用命令行創(chuàng)建基本 java Maven項(xiàng)目

在創(chuàng)建之前先了解一下Maven的版本規(guī)范,對(duì)創(chuàng)建項(xiàng)目也是有幫助的,創(chuàng)建項(xiàng)目是會(huì)用得到。
maven使用如下幾個(gè)要素來(lái)唯一定位某一個(gè)輸出物:

groudId:
團(tuán)體、組織的標(biāo)識(shí)符。團(tuán)體標(biāo)識(shí)的約定是,它以創(chuàng)建這個(gè)項(xiàng)目的組織名稱的逆向域名(reverse domain name)開頭。一般對(duì)應(yīng)著JAVA的包的結(jié)構(gòu)。例如org.apache

artifactId:
單獨(dú)項(xiàng)目的唯一標(biāo)識(shí)符。也可以理解為項(xiàng)目名稱。比如我們的tomcat, commons等。不要在artifactId中包含點(diǎn)號(hào)(.)。

version:
一個(gè)項(xiàng)目的特定版本。

packaging:
項(xiàng)目的類型,默認(rèn)是jar,描述了項(xiàng)目打包后的輸出。類型為jar的項(xiàng)目產(chǎn)生一個(gè)JAR文件,類型為war的項(xiàng)目產(chǎn)生一個(gè)web應(yīng)用。

maven有自己的版本規(guī)范,一般是如下定義 <major version>.<minor version>.<incremental version>-<qualifier> ,比如1.2.3-beta-01。要說(shuō)明的是,maven自己判斷版本的算法是major,minor,incremental部分用數(shù)字比較,qualifier部分用字符串比較,所以要小心 alpha-2和alpha-15的比較關(guān)系,最好用 alpha-02的格式。

maven在版本管理時(shí)候可以使用幾個(gè)特殊的字符串 SNAPSHOT,LATEST,RELEASE。比如"1.0-SNAPSHOT"。各個(gè)部分的含義和處理邏輯如下說(shuō)明:

SNAPSHOT
這個(gè)版本一般用于開發(fā)過(guò)程中,表示不穩(wěn)定的版本。

LATEST
指某個(gè)特定構(gòu)件的最新發(fā)布,這個(gè)發(fā)布可能是一個(gè)發(fā)布版,也可能是一個(gè)snapshot版,具體看哪個(gè)時(shí)間最后。

RELEASE
指最后一個(gè)發(fā)布版。

創(chuàng)建Maven項(xiàng)目(第一種)

  1. 先創(chuàng)建項(xiàng)目的根目錄,比如F:\mvnTest,命令行窗口下輸入下面兩個(gè)命令:

cd /d F:\mvnTest

mvn archetype:generate

  1. 這里會(huì)執(zhí)行一會(huì),從網(wǎng)絡(luò)獲取項(xiàng)目模板列表,等到如下圖,直接回車,
mvn 選擇版本
  1. 出現(xiàn)下圖,繼續(xù)回車,


    mvn 選擇版本2
  2. 出現(xiàn)下圖,填寫項(xiàng)目基本信息,如下圖,

mvn 填寫基本信息
  1. 確認(rèn)這些信息之后,出現(xiàn)下圖就表示項(xiàng)目創(chuàng)建成功,如下圖,
mvn 項(xiàng)目創(chuàng)建成功

6.項(xiàng)目創(chuàng)建成功后,觀察工程結(jié)構(gòu),這個(gè)生成項(xiàng)目就是標(biāo)準(zhǔn)的maven 項(xiàng)目。

maven 標(biāo)準(zhǔn)工程結(jié)構(gòu)

這是全世界maven項(xiàng)目的通用約定,請(qǐng)記住這些固定的目錄結(jié)構(gòu)。

創(chuàng)建Maven項(xiàng)目(第二種)

使用命令:

mvn archetype:generate -DgroupId=pertrochina.xjyt -DartifactId=mvnTest2 -DinteractiveMode=false

maven 第二種方法創(chuàng)建

編譯項(xiàng)目

先進(jìn)入剛才創(chuàng)建項(xiàng)目的根目錄:

cd /d F:\mvnTest\mvnTest

mvn clean compile或者mvn compile

進(jìn)行編譯,如下圖顯示,成功編譯。

maven 編譯成功

單元測(cè)試

使用命令:mvn clean test或者mvn test

maven 單元測(cè)試

如果單元測(cè)試不通過(guò),會(huì)提示出錯(cuò)信息,注意看輸出。

==注:從輸出上可以發(fā)現(xiàn),test前,會(huì)先執(zhí)行compile,即先編譯,再執(zhí)行單元測(cè)試.==

項(xiàng)目打包

通常我們會(huì)把java項(xiàng)目打包成jar包或war包,maven中打包的命令為

mvn clean package或者mvn package

maven 單元測(cè)試

運(yùn)行完后,會(huì)在target目錄下生成jar包

==注:從輸出 可以發(fā)現(xiàn),package前,會(huì)先執(zhí)行compile,再執(zhí)行test,最后才是package打包.==

項(xiàng)目運(yùn)行

進(jìn)入F:\mvnTest\mvntest\target\classes,運(yùn)行下面的命令:
java pertrochina.xjyt.App

maven 項(xiàng)目運(yùn)行

在這里java項(xiàng)目就可以使用了。需要什么就添加就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,661評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,233評(píng)論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,282評(píng)論 6 342
  • 很長(zhǎng)一段時(shí)間,我的生活看似馬上就要開始了真正的生活,但總有一些障礙阻擋著,有些事情得先解決,有些工作還有待完成。然...
    迪少閱讀 499評(píng)論 0 0
  • 又是一年雨雪時(shí),記憶中已經(jīng)記不清上一次是什么時(shí)候下雪了,那么遠(yuǎn)又那么近,記憶中的昨天一直都是16年12年,可是他們...
    只是孤獨(dú)閱讀 330評(píng)論 0 0

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