Maven
?1.Maven的簡介
??Maven是項目進行模型抽象买雾,充分運用面向?qū)ο笏枷氚崖ㄟ^一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具漓穿。Maven除了以程序構(gòu)建能力為特色之外嗤军,還提供高級項目管理工具。
?2.Maven的主要作用
??1.對第三方j(luò)ar包的統(tǒng)一管理器净。意思其實就是通過本地倉庫或者是遠程倉庫更或者是中央倉庫進行依賴管理型雳,省去了導入jar包的操作。不過一般我們在配置Maven時會選擇阿里的遠程倉庫山害,不會去連接中央倉庫,因為太慢了沿量,而且阿里不僅擁有中央倉庫的所有jar包而且開源了自身許多有用的jar包浪慌,如數(shù)據(jù)庫連接池jar包Druid(德魯伊)。
??2.將項目分模塊構(gòu)建朴则,提高開發(fā)效率权纤。意思就是說使用Maven時,其構(gòu)建項目時乌妒,會將包分好汹想,方便工作人員協(xié)同開發(fā),提高效率撤蚊。
??3.Maven提供一套對項目生命周期管理的標準古掏。意思是說,Maven為項目提供了許多有關(guān)jar包的作用域侦啸,作用范圍槽唾,類的生命周期,運行范圍光涂。以及項目的編譯庞萍,部署等都提供了很好的接口,只要配置下就好了忘闻。減少了開發(fā)人員思考這些無關(guān)緊要的東西钝计,只要遵循Maven的標準就可以了。
?3.Maven下載后的配置
??Maven不是下載好了就能夠使用了,需要更改其一些配置方便我們開發(fā)私恬。首先债沮,打開Maven下conf文件夾下settings.xml文件,更改這個配置文件践付。在大約55行處有一個<localRepository>標簽秦士,將其更改成自己想要的目錄,來存放Maven將來要下載的jar包目錄永高。我的如下:
<localRepository>D:\apache-maven-3.3.9\repository</localRepository>
更改完找到大約150行左右有一個<mirrors>標簽隧土,在這個標簽內(nèi)添加如下代碼,以便到時本地倉庫沒有相關(guān)jar包時命爬,可以到阿里的遠程倉庫下載相關(guān)jar包曹傀,方便,快速饲宛,減少下載時間皆愉。(如果不更改,默認使用Maven的中央倉庫下載很慢)艇抠。添加的代碼如下:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
這樣就配置完成了幕庐,就可以很方便的使用了。當然家淤,方便使用我們要在什么地方使用呢异剥,Maven是構(gòu)建項目的,所以一般他需要和開發(fā)使用的IDE集成起來使用絮重,我使用的是IDEA冤寿,我簡單說下在IDEA中如何使用MAVEN。
?4.IDEA中的Maven
??在IDEA中青伤,使用Maven很簡單督怜,首先IDEA本身自帶了Maven,不過其自帶的Maven較為垃圾狠角,不適合開發(fā)号杠,所以一般都關(guān)聯(lián)自己的Maven,配置很簡單擎厢。點擊Files->Settings在搜索框中輸入Maven究流,就可以看到Maven選項,點擊Maven選項
在右側(cè)關(guān)聯(lián)上自己的Maven动遭,如圖是我自己的
注意:只需在選擇文件處找到自己的Maven就可以了芬探,不用其他操作,將Override勾選上即可厘惦。然后Apply和OK就完事了偷仿。
?5.IDEA中創(chuàng)建Maven項目
??1.IDEA中創(chuàng)建JavaSe的Maven項目哩簿。這個需求一般來說有點不可能,一般能接觸到Maven的各位一般都已經(jīng)接觸Web了酝静,對于這個根本沒需求节榜,不過這個是給小白看的,高手請繞過后面部分的Web項目構(gòu)建别智。首先宗苍,在IDEA中,project對應(yīng)Eclipse的工作空間薄榛,module對應(yīng)Eclipse的project讳窟。所以在idea中的一個project中創(chuàng)建一個module,并選擇Maven敞恋,在右邊查找到紅線所示的quickstart丽啡。如圖:
點擊下一步,如下圖
Groupid一般是公司域名的倒寫硬猫,這里我只是用自己名字的縮寫模仿了下补箍。至于Artifactid一般是項目名稱。當然啸蜜,進入公司后具體由公司來決定坑雅,不用你操心,這里寫你的項目名稱就ok衬横。還有一點霞丧,在上面還有兩個選項,這個一般你自己寫項目用不到冕香,如果不是默認的none而是其他的請改掉選擇none。寫好點擊下一步
這里一般正常就不用改后豫,看下是否是自己module名稱悉尾。如果是請點擊下一步,如果不是請查看前面步驟挫酿,如果前面沒問題還是這樣构眯,就自己修改。然后點擊finish就可以了早龟。
出現(xiàn)這個表示創(chuàng)建成功了惫霸。項目結(jié)構(gòu)如下圖
JavaSe無非就是導入一些基礎(chǔ)的jar包,如jstl標簽庫葱弟,數(shù)據(jù)庫連接池壹店,數(shù)據(jù)庫驅(qū)動,單元測試等等芝加,在pom.xml中導入相關(guān)依賴即可硅卢。
?6.一次創(chuàng)建,永遠簡單
??使用Maven構(gòu)建web項目是一個挺令人煩躁的事情,Maven自身帶的骨架還是要進行修改将塑,所以最好還是自己弄個骨架脉顿,以后永遠方便。首先点寥,構(gòu)建骨架還是要先構(gòu)建Maven的web項目艾疟。同樣在idea中的一個project中創(chuàng)建一個module,并選擇Maven敢辩,在右邊查找到紅線所示的webapp蔽莱。
點擊next
Groupid一般是公司域名的倒寫,這里我只是用自己名字的縮寫模仿了下责鳍。至于Artifactid一般是項目名稱碾褂。當然,進入公司后具體由公司來決定历葛,不用你操心正塌,這里寫你的項目名稱就ok。還有一點恤溶,在上面還有兩個選項乓诽,這個一般你自己寫項目用不到,如果不是默認的none而是其他的請改掉選擇none咒程。然后點擊下一步鸠天,如圖
看一下是否是自己的Maven,是就直接下一步帐姻。不是請看前面的配置環(huán)節(jié)稠集,如果進行了前面的配置操作還不是自己的Maven,就自己手動選擇吧饥瓷。
看下是自己項目名稱不剥纷,是就下一步,不是請修改呢铆。然后finish晦鞋,看是否成功
成功后,請看項目結(jié)構(gòu)圖
這個目錄棺克,并沒有生成好悠垛,所以需要修改下。在src下添加test文件夾娜谊,
在main下添加java文件夾和resources文件夾确买,同樣,在test文件下一樣添加java和resources文件夾。添加好后如下圖
添加完后,給這幾個文件夾添加如下屬性,右擊main下的java文件夾嗽测,選擇make directory as選項撑帖。
然后對應(yīng)選擇蓉坎,main下的java選擇藍色的sources root選項,其他三個對應(yīng)選胡嘿,結(jié)果如下圖蛉艾。
這樣就搭好了骨架助琐,為了能生成更好的骨架,這里呢選擇了修改一些東西面氓,這些操作不是必須兵钮。首先為了能支持servlet的注解開發(fā),這里修改了web.xml如代碼,剩下的沒改舌界。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
然后為了減少以后的操作掘譬,給pom.xml添加常用的依賴添加到骨架中,順便將骨架生成的插件集合進來呻拌,打開pom.xml,在plugins中添加插件代碼
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.0</version>
</plugin>
然后添加的常用依賴代碼葱轩,這個根據(jù)自己的情況選擇。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--mysql驅(qū)動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<!-- c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--jsonlib的依賴-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!-- redis的依賴 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
<!-- dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- jaxen -->
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1-beta-6</version>
</dependency>
<!--servlet的api-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--commons io 依賴-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
好了這些操作完成藐握,可以使用指令生成骨架了靴拱。點擊如下圖
然后輸入指令:
這里我將三個用到的指令給出來
archetype:create-from-project 創(chuàng)建骨架來自工程
install
archetype:crawl
第一個先輸入如下指令,點擊execute
成功會輸出如下圖
接著如下圖操作猾普,這部的意思是讓Maven下載骨架
成功如下圖
一樣第三部輸入如下指令缭嫡,如圖點擊execute
成功如下圖:
好了所有操作完成,現(xiàn)在我們在Maven中創(chuàng)建我們的骨架
首先我們找到我們骨架的坐標抬闷,我們自己創(chuàng)建的骨架在Maven的本地庫中,我的目錄如下,就是Maven本地倉庫加你創(chuàng)建骨架時的域名加項目名+archetype
D:\apache-maven-3.3.9\repository\com\wuhaitao\project-archetype
打開如下圖
是個坐標耕突,然后打開idea在project中新建一個module笤成,如圖
輸入好坐標后點擊ok就生成了咱們的骨架如下圖
然后點擊咱們的骨架,點擊next眷茁,接下來就是上面創(chuàng)建web的Maven項目了炕泳,向上面所寫的那樣建就好。
在點擊finish后
然后就可以了