關(guān)于maven的用法和幾個(gè)常用的命令
做項(xiàng)目時(shí)使用maven構(gòu)建項(xiàng)目已經(jīng)是現(xiàn)在的流行做法了。
那么maven的作用是什么呢?
maven中的幾個(gè)常用的命令都有什么用?下面我們來看一下。
maven最大的作用就是用于對(duì)項(xiàng)目中jar包依賴的統(tǒng)一管理。
通常項(xiàng)目中如果不使用maven的話,項(xiàng)目中用到的jar包需要自己下載,然后放到項(xiàng)目的lib目錄,比較麻煩。
如果使用maven構(gòu)建項(xiàng)目,項(xiàng)目中就會(huì)有有一個(gè)pom文件,該pom文件的作用就是對(duì)項(xiàng)目中的所有jar包依賴進(jìn)行統(tǒng)一管理,如果想要使用哪個(gè)依賴只需要在pom文件中引入相關(guān)的依賴就可以,然后maven就會(huì)自動(dòng)從遠(yuǎn)程倉庫下載jar包到本地倉庫。如果一下項(xiàng)目中需要引入另一個(gè)項(xiàng)目的包,也可以由maven打包加入該項(xiàng)目的依賴。
使用maven倉庫的話需要從網(wǎng)上下載maven的包,比如“apache-maven-3.5.4-bin.tar”,下載完成之后解壓,在解壓的文件夾中的conf目錄下的settings.xml文件夾下就可以配置maven遠(yuǎn)程倉庫和本地倉庫的地址。配置了遠(yuǎn)程倉庫的地址之后就可以從遠(yuǎn)程倉庫下載jar包到本地倉庫了。
默認(rèn)的遠(yuǎn)程倉庫地址是國外的鏡像,下載jar包的話比較慢,可以使用國內(nèi)鏡像提高下載效率。
//國內(nèi)鏡像 <mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
本地倉庫的地址也可以在settings.xml文件中配置。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->默認(rèn)的本地倉庫地址是${user.home}/.m2/repository,如果是mac電腦的話默認(rèn)地址就是/Users/本機(jī)用戶名/.m2。也可以修改本地倉庫地址為其他的地址。
遠(yuǎn)程倉庫和本地倉庫配置好了,怎么在項(xiàng)目中使用maven呢?以Intellij IDEA為例。
首先新建項(xiàng)目的時(shí)候要構(gòu)建成maven項(xiàng)目。如果是導(dǎo)入項(xiàng)目導(dǎo)入的類型也可以選擇是maven項(xiàng)目,或者先倒入,等其他的都配置好了再把項(xiàng)目轉(zhuǎn)成maven項(xiàng)目。
然后配置maven,打開Intellij IDEA的Preferences。

點(diǎn)擊Build,Execution,Deployment中的maven,就可以對(duì)項(xiàng)目中使用到的maven進(jìn)行配置。

其中主要有三項(xiàng)需要配置。
Maven home direcroty:地址是下載的解壓之后的maven壓縮包。User settings file:setting.xml所在的位置,通常是上面的Maven home direcroty的子目錄。Local repository:本地倉庫的地址。
也可以在新建maven項(xiàng)目的時(shí)候在項(xiàng)目配置中配置這些東西。
配置好了之后項(xiàng)目中就可以使用maven了。
以前沒有使用maven的時(shí)候項(xiàng)目之間的jar包都是獨(dú)立的,兩個(gè)項(xiàng)目之間即使有重復(fù)的jar包也不能實(shí)現(xiàn)復(fù)用,有了maven之后,多個(gè)項(xiàng)目可以共享同一個(gè)本地倉庫,所有的項(xiàng)目的jar包都依賴同一個(gè)本地倉庫,需要哪些依賴直接通過pom.xml指定就可以從中央倉庫下載了,方便又實(shí)用。
除此之外,maven還有一些常用的命令,更加方便項(xiàng)目的管理。
下面介紹一些常用的命令及其作用
(1)maven clean
對(duì)項(xiàng)目進(jìn)行清理,清理的過程中會(huì)刪除刪除target目錄下編譯的內(nèi)容。
(2)maven compile
編譯項(xiàng)目源代碼。
(3)maven test
對(duì)項(xiàng)目的運(yùn)行測試。
(4)maven packet
可以打包后的文件存放到項(xiàng)目的 target 目錄下,打包好的文件通常都是編譯后生成的class文件。
(4)maven install
在本地倉庫生成倉庫的安裝包可以供其他項(xiàng)目引用,同時(shí)打包后的文件存放到項(xiàng)目的 target 目錄下。
對(duì)項(xiàng)目打包有三種打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中進(jìn)行指定。
pom工程一般是聚合工程,代表父工程,負(fù)責(zé)管理jar包的版本、maven插件的版本等,主要做統(tǒng)一的依賴管理。
jar包就是普通的打包方式,可以是pom工程的子工程。
war包的都是web工程,是可以直接放到tomcat下運(yùn)行的工程。
打成pom包和jar包的工程在新建的時(shí)候可以不需要制定maven項(xiàng)目的原型,達(dá)成war包的項(xiàng)目需要制定maven項(xiàng)目原型,指定的原型通常為maven-archetype-webapp,代表web項(xiàng)目。
其中最常用的就是maven clean和maven install。
maven在項(xiàng)目中還是很有用的。關(guān)于maven的基本用法就介紹到這里。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot?實(shí)現(xiàn)CAS?Server統(tǒng)一登錄認(rèn)證的詳細(xì)步驟
??CAS(Central?Authentication?Service)中心授權(quán)服務(wù),是一個(gè)開源項(xiàng)目,目的在于為Web應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄,這篇文章主要介紹了SpringBoot?實(shí)現(xiàn)CAS?Server統(tǒng)一登錄認(rèn)證,需要的朋友可以參考下2024-02-02
Java對(duì)象級(jí)別與類級(jí)別的同步鎖synchronized語法示例
這篇文章主要為大家介紹了Java對(duì)象級(jí)別與類級(jí)別的同步鎖synchronized語法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
玩轉(zhuǎn)spring boot 結(jié)合jQuery和AngularJs(3)
玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合jQuery和AngularJs,玩轉(zhuǎn)spring boot,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
CountDownLatch源碼解析之countDown()
這篇文章主要為大家詳細(xì)解析了CountDownLatch源碼之countDown方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
SpringBoot中使用@scheduled定時(shí)執(zhí)行任務(wù)的坑
本文主要介紹了SpringBoot中使用@scheduled定時(shí)執(zhí)行任務(wù)的坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

