微信公眾號(hào): Spark大數(shù)據(jù)
一、 Maven有什么作用?
1、讓maven倉(cāng)庫(kù)自動(dòng)幫你下載jar包
maven項(xiàng)目會(huì)有一個(gè) pom.xml文件, 在這個(gè)文件里面,只要你添加相應(yīng)配置,他就會(huì)自動(dòng)幫你下載相應(yīng)jar包,不用你鋪天蓋地的到處搜索你需要的jar包。
下面是示范配置文件pom.xml

maven都會(huì)通過(guò),項(xiàng)目名-項(xiàng)目模塊-項(xiàng)目版本來(lái)maven在互聯(lián)網(wǎng)上的代碼庫(kù)中下載相應(yīng)jar包。
2、尋找依賴,幫你下載依賴
尋找jar包是第一基本功能,尋找依賴在這個(gè)是在這個(gè)基礎(chǔ)上的功能。
在maven的代碼庫(kù)中,每一個(gè)jar包也有自己的 pom.xml文件,而這個(gè)文件里面也會(huì)有配置,只要你配置的jar包所依賴的其他jar包都會(huì)被maven自動(dòng)下載下來(lái)。
二、Maven的安裝與配置
1、下載 Maven
下載地址:?http://maven.apache.org/download.cgi

2、安裝Maven
安裝Maven的前要安裝JDK。
將安裝文件解壓到你指定的目錄中。這里的Maven安裝目錄是E:\apache-maven-3.5.0。
3、設(shè)置環(huán)境變量,將Maven安裝配置到操作系統(tǒng)環(huán)境中
1)打開(kāi)系統(tǒng)屬性面板(桌面上右鍵單擊“我的電腦”→“屬性”),點(diǎn)擊高級(jí)系統(tǒng)設(shè)置,再點(diǎn)擊環(huán)境變量,
2)在系統(tǒng)變量中新建一個(gè)變量,變量名為 M2_HOME,變量值為Maven的安裝目錄E:\apache-maven-3.5.0。
3)點(diǎn)擊確定,接著在系統(tǒng)變量中找到一個(gè)名為Path的變量,在變量值的末尾加上 %M2_HOME%\bin;
4)注意多個(gè)值之間需要有分號(hào)隔開(kāi),然后點(diǎn)擊確定。至此,環(huán)境變量設(shè)置完成。
4、測(cè)試安裝成功
打開(kāi)一個(gè)新的cmd窗口,運(yùn)行 mvn -v 命令檢查Maven的安裝情況

5、修改maven配置使用阿里提供的maven源
打開(kāi)maven安裝路徑下的conf/settings.xml 文件

三、eclipse 配置maven

修改maven的settings.xml 配置

四、創(chuàng)建maven 工程
選擇菜單項(xiàng)File -> New -> Other,在彈出的對(duì)話框中選擇Maven下的Maven Project

然后點(diǎn)擊Next >,在彈出的New Maven Project對(duì)話框中,我們使用默認(rèn)的選項(xiàng)

點(diǎn)擊Next >,此時(shí)m2eclipse會(huì)提示我們選擇一個(gè)Archetype,我們選擇maven-archetype-quickstart

再點(diǎn)擊Next >。輸入groupId,、artifactId、version、package

安裝完成功后工程結(jié)構(gòu)圖如下:

四、編寫(xiě)pom.xml
Maven 項(xiàng)目的核心是 pom.xml。 POM( Project Object Model,項(xiàng)目對(duì)象模型)定義了項(xiàng)目的基本信息,用于描述項(xiàng)目如何構(gòu)建,聲明項(xiàng)目依賴,等等。
這段代碼中最重要的是 groupId, artifactId 和 version 三行。這三個(gè)元素定義了一個(gè)項(xiàng)目基本的坐標(biāo),在 Maven的世界,任何的 jar、 pom 或者 war 都是以基于這些基本的坐標(biāo)進(jìn)行區(qū)分的。
groupId :
定義了項(xiàng)目屬于哪個(gè)組,這個(gè)組往往和項(xiàng)目所在的組織或公司存在關(guān)聯(lián),譬如你在 googlecode 上建立了一個(gè)名為 myapp 的項(xiàng)目,那么 groupId 就應(yīng)該是 com.googlecode.myapp,如果你的公司是 mycom,有一個(gè)項(xiàng)目為 myapp,那么 groupId 就應(yīng)該是 com.mycom.myapp。本書(shū)中所有的代碼都基于 groupId com.juvenxu.mvnbook。
artifactId:
定義了當(dāng)前 Maven 項(xiàng)目在組中唯一的 ID,我們?yōu)檫@個(gè) Hello World 項(xiàng)目定義 artifactId 為 hello-world,本書(shū)其他章節(jié)代碼會(huì)被分配其他的 artifactId。而在前面的 groupId 為 com.googlecode.myapp 的例子中,你可能會(huì)為不同的子項(xiàng)目(模塊)分配 artifactId,如: myapp-util、 myapp-domain、 myapp-web 等等。
version :
指定了 Hello World 項(xiàng)目當(dāng)前的版本——1.0-SNAPSHOT。 SNAPSHOT 意為快照,說(shuō)明該項(xiàng)目還處于開(kāi)發(fā)中,是不穩(wěn)定的版本。隨著項(xiàng)目的發(fā)展, version 會(huì)不斷更新,如升級(jí)為 1.0、 1.1-SNAPSHOT、1.1、 2.0 等等。
本例是添加mysql驅(qū)動(dòng)包

添加完后,看一下本地maven倉(cāng)庫(kù),已經(jīng)幫你把mysql的驅(qū)動(dòng)包好了。

六、用maven 生成可執(zhí)行 jar
在pom.xml中添加下面與<dependencies/>同級(jí)別的標(biāo)簽。
<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><appendAssemblyId>false</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.hainiuxy_linux.HelloWorld</mainClass><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>assembly</goal></goals></execution></executions></plugin></plugins></build>
其中:
<mainClass>com.hainiuxy_linux.HelloWorld</mainClass>指的是 jar 文件中的啟動(dòng)類。
設(shè)置classpath 路徑
<addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix>
右鍵maven 工程 → Run As → Maven install

查看maven 控制臺(tái),是否有報(bào)錯(cuò)信息,如果沒(méi)有,會(huì)在maven 工程的 target 文件夾下生成一個(gè)可執(zhí)行 jar


如果再次打包時(shí),需要先執(zhí)行 Run As → Maven clean,再執(zhí)行 Run As → Maven install。