maven安裝與使用

簡(jiǎn)介

Maven 翻譯為"專家"凛剥、"內(nèi)行",是 Apache 下的一個(gè)純 Java 開發(fā)的開源項(xiàng)目从隆±镀玻基于項(xiàng)目對(duì)象模型(縮寫:POM)概念徽龟,Maven利用一個(gè)中央信息片斷能管理一個(gè)項(xiàng)目的構(gòu)建、報(bào)告和文檔等步驟唉地。
Maven 是一個(gè)項(xiàng)目管理工具,可以對(duì) Java 項(xiàng)目進(jìn)行構(gòu)建传透、依賴管理耘沼。
Maven 也可被用于構(gòu)建和管理各種項(xiàng)目,例如 C#朱盐,Ruby群嗤,Scala 和其他語(yǔ)言編寫的項(xiàng)目。Maven 曾是 Jakarta 項(xiàng)目的子項(xiàng)目兵琳,現(xiàn)為由 Apache 軟件基金會(huì)主持的獨(dú)立 Apache 項(xiàng)目狂秘。

一骇径、安裝

1.1 下載
從Maven官方地址:http://maven.apache.org/download.cgi下載最新版本apache-maven-3.3.9-bin.tar.gz

1.2 將Maven添加進(jìn)環(huán)境變量
Maven 下載完畢后者春,解壓到環(huán)境變量集合的位置破衔,我是將其解壓在/usr/local/目錄下。
然后在終端中钱烟,執(zhí)行如下命令

# 我用的是zsh
sudo vim ~/.zshrc
# 如果是用bash
# sudo vim ~/.bash_profile

1.3 添加配置

export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export PATH=${PATH}:${MAVEN_HOME}/bin

1.4 使環(huán)境變量生效

source ~/.zshrc

1.5 測(cè)試Maven是否安裝成功

mvn -version
maven 安裝成功

二晰筛、使用

下面只介紹在IntelliJ IDEA中的使用
所需環(huán)境:Maven 3.6.1 、 IntelliJ IDEA 拴袭、 JDK 8

2.1 創(chuàng)建Maven 項(xiàng)目
命令行創(chuàng)建

mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
參數(shù)說(shuō)明:

-DgourpId: 組織名读第,公司網(wǎng)址的反寫 + 項(xiàng)目名稱
-DartifactId: 項(xiàng)目名-模塊名
-DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart拥刻,創(chuàng)建一個(gè)簡(jiǎn)單的 Java 應(yīng)用
-DinteractiveMode: 是否使用交互模式

進(jìn)入 File -> New -> Project怜瞒,在左測(cè)選擇Maven
image.png
image.png

然后創(chuàng)建信息如下,注意般哼,上下兩個(gè)GroupId 跟 ArtifactId 因?yàn)槲沂欠謩e創(chuàng)建不同的項(xiàng)目截的圖吴汪,所以不一致

image.png
注意:所有的源代碼放在文件夾 /src/main/java/, 所有的單元測(cè)試代碼放入 /src/test/java/.
項(xiàng)目結(jié)構(gòu)

附加的一個(gè)標(biāo)準(zhǔn)的 pom.xml 被生成。這個(gè)POM文件類似于 Ant build.xml 文件逝她,它描述了整個(gè)項(xiàng)目的信息浇坐,一切從目錄結(jié)構(gòu),項(xiàng)目的插件黔宛,項(xiàng)目依賴近刘,如何構(gòu)建這個(gè)項(xiàng)目等,請(qǐng)閱讀POM官方指南
在創(chuàng)建 POM 之前臀晃,我們首先需要描述項(xiàng)目組 (groupId), 項(xiàng)目的唯一ID觉渴。

<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>
    <!-- 公司或者組織的唯一標(biāo)志,并且配置時(shí)生成的路徑也是由此生成徽惋, 如com.companyname.project-group案淋,maven會(huì)將該項(xiàng)目打成的jar包放本地路徑:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
    <!-- 項(xiàng)目的唯一ID,一個(gè)groupId下面可能多個(gè)項(xiàng)目险绘,就是靠artifactId來(lái)區(qū)分的 -->
    <artifactId>project</artifactId>
    <!-- 版本號(hào) -->
    <version>1.0</version>
</project>

2.2 導(dǎo)入外部依賴
pom 導(dǎo)入外部依賴踢京,https://mvnrepository.com/

導(dǎo)入 com.alibaba 依賴

選擇版本
復(fù)制 Maven 坐標(biāo)的內(nèi)容到pom文件下

pom 修改如下

<?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>com</groupId>
    <artifactId>chartboost</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
    </dependencies>
    ···
    ···
</project>

2.3 Maven 打包
導(dǎo)入外部依賴到 pom.xml 文件宦棺,進(jìn)行java文件編寫后瓣距,即可將 Maven 項(xiàng)目打包

導(dǎo)入依賴

注意,在添加外部依賴到 pom.xml 文件后代咸,需要在 IDEA 編輯器的右下角選擇 Enable Auto-Import蹈丸,使依賴能自動(dòng)導(dǎo)入
現(xiàn)在,我們將使用Maven這個(gè)項(xiàng)目,并輸出編譯成一個(gè) “jar” 的文件逻杖。 請(qǐng)參考 pom.xml 文件奋岁,包元素定義應(yīng)該包應(yīng)該輸出什么。
/Users/wu/Work/youmi/Reverses目錄下運(yùn)行

mvn package
maven 打包

它編譯荸百,運(yùn)行單元測(cè)試并打包項(xiàng)目成一個(gè) jar 文件闻伶,并把它放在 project/target 文件夾,接著運(yùn)行如下命令即可

# charboost 是 java 模塊名稱
java -cp target/charboost-1.0-SNAPSHOT.jar chartboost
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末管搪,一起剝皮案震驚了整個(gè)濱河市虾攻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌更鲁,老刑警劉巖霎箍,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異澡为,居然都是意外死亡漂坏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門媒至,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顶别,“玉大人,你說(shuō)我怎么就攤上這事拒啰⊙币铮” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵谋旦,是天一觀的道長(zhǎng)剩失。 經(jīng)常有香客問(wèn)我,道長(zhǎng)册着,這世上最難降的妖魔是什么拴孤? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮甲捏,結(jié)果婚禮上演熟,老公的妹妹穿的比我還像新娘。我一直安慰自己司顿,他們只是感情好芒粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著大溜,像睡著了一般化漆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猎提,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼锨苏。 笑死疙教,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伞租。 我是一名探鬼主播贞谓,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼葵诈!你這毒婦竟也來(lái)了裸弦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤作喘,失蹤者是張志新(化名)和其女友劉穎理疙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泞坦,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窖贤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贰锁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赃梧。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豌熄,靈堂內(nèi)的尸體忽然破棺而出授嘀,到底是詐尸還是另有隱情,我是刑警寧澤锣险,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布蹄皱,位于F島的核電站,受9級(jí)特大地震影響囱持,放射性物質(zhì)發(fā)生泄漏夯接。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一纷妆、第九天 我趴在偏房一處隱蔽的房頂上張望盔几。 院中可真熱鬧,春花似錦掩幢、人聲如沸逊拍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芯丧。三九已至,卻和暖如春世曾,著一層夾襖步出監(jiān)牢的瞬間缨恒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骗露,地道東北人岭佳。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萧锉,于是被迫代替她去往敵國(guó)和親珊随。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361