maven入門實戰
項目一大,管理起來就不太容易了。編譯、測試、打包、發布,一個枯燥的周而復始的工
作讓無數程序員崩潰了一次又一次。于是,ant出現了~構建工程師終于可以輕松一下了。
他們歡快得敲著xml式的命令:在xx位置創建一個xx文件夾,把xx文件夾下的源碼進行編
譯,編譯完的class文件放在xx位置,在xx位置的已發布包備份一下,然后把新發布的包
放到xx位置……
但是項目不同,構建工程師不同,他們寫的ant腳本就不同,構建方式就不同,一個新人
過來項目組,總是不可避免的要花一部分時間來熟悉新項目的構建方式,浪費了很多無謂
的時間,大家怨聲載道……于是,maven出現了……
maven認為約定優于配置,它不是為你構建的不同任務編寫腳本,它提倡一組標準,一個
一般的接口,一個生命周期,一個標準的倉庫格式,一個標準的目錄布局,等等
一個新人弄懂了一個maven項目的構建方式,也就弄懂了所有的maven項目的構建方式……
以后你拿到一個項目之后,你就會自然而然的知道用mvn install來構建它……</div>
Maven 的核心財產是聲明性構建,依賴管理,倉庫管理,基于插件的高度的重用
舉個簡單的例子,ant啥事都是自己干,像是攢一臺組裝機,而maven則更像是一品牌機~
maven的目標:就是干掉構建工程師(嘎嘎,開個玩笑)
OK.Let's get started!
1、去maven.apache.org/download.html下載maven,解壓縮
2、設置環境變量,M2_HOME=maven根目錄;path=%M2_HOME%\bin(Windows方式),用
Linux的同學就按照Linux的方式設置一下就好~
3、打開命令行,運行:mvn -v,如果有版本輸出,OK,說明你安裝成功了
4、初始化maven:運行一下mvn help:system,初始化一下
5、開始一個小項目~
1)mvn archetype:generate,簡單解釋一下這個命令,archetype是一個maven插件,
maven的絕大部分功能都是靠插件來完成的,這個插件提供了一些項目的核心骨架,
比如一個簡單的項目是這樣的目錄結構:</div>
frame-simple |-src |-main |-java |-一些帶有包結構的java文件 |-resources |-一些配置文件,比如log4j.properties |-test |-java |-resources |-pom.xml
</div>
但是對于一個web項目,目錄結構就會稍有不同,maven要求把jsp文件放在src/main/webapp
下,當然,WEB-INF目錄也是放在這里
不同的項目,目錄結構是不同的,我們稱為項目骨架類型不同,mvn archetype:generate
這么命令就會有很多骨架類型讓你選擇,看到很多輸出不要驚慌,選擇默認的編號(這個</div>
編號就表示一個最簡單的骨架類型),回車,接下來讓你輸入:
groupId/artifactId/version/package
先不要問為什么,groupId輸入:com.baidu.testmvn;artifactId輸入:testmvn-simple,version
直接按照默認的來就行,直接回車,package輸入:com.baidu.testmvn,然后一個新的項目就骨架就
搭建起來了
如果我現在要搭建一個web項目,可以直接這樣輸入一條命令來搞定:
mvn archetype:generate -DgroupId=hx.frame -DartifactId=frame-web -DarchetypeArtifactId=maven-archetype-webapp
groupId/artifactId/version這幾個東東組成了maven中的坐標,這個解釋起來挺麻煩,大伙可以google一下,
maven利用坐標來唯一的定位一個jar包。全球有個maven中央庫,那里維護了各種類型各種版本的jar包,
他們需要一個唯一的標識來識別嘛是吧,所以坐標就應運而生了。
項目的根下有個pom.xml不知道你注意到沒有,這個文件在整個項目中灰常重要,它規定了當前項目
依賴于哪些jar包,用了哪些maven插件,使用了什么樣的編譯參數等等。你打開自己的文件看一下就好了,
我就不貼出來了~默認情況下,maven為你引入了一個junit,可惜版本太低,不過沒有關系,直接改成</div>
4.8的版本就行,在這里稍微這么一改動,maven就知道你要用哪個版本了,這,就是聲明式構建的體現哦
6、導入你喜歡的IDE,我習慣用idea,直接File->New Project,選擇已經存在的maven項目,導入,O了
你可能習慣用eclipse,自己google一下怎么導入吧
在idea右側有一個maven project的小窗口,里邊有一些命令可以直接運行:
mvn clean mvn validate mvn compile mvn test mvn package mvn install mvn site mvn depoly
其實這些命令就推動了maven項目的生命周期~google一下“maven 生命周期”</div>
先清理一下,然后編譯一下,測試一把,打個包,發布,是吧,正好也是你平時的做法,對吧,呵呵
maven對于項目的lib庫的依賴管理很有一手,具體怎么管理的這里就不展開了,google一下“maven 依賴管理”
不過可以列幾個命令share一下:
mvn dependency:list 查看當前項目的已解析依賴
mvn dependency:tree 查看當前項目的依賴樹
mvn dependency:analyze 分析當前項目的依賴狀況,可以找到一些warning:
a)使用了未聲明的依賴
b)沒有使用已聲明的依賴(這些或許可以刪掉,但是要仔細分析,像spring-core,spring-beans看起來是沒有用到,
但是他們是spring運行必須的)
OK,最后隆重推出一個maven插件,jetty-maven-plugin
這個插件可以啟動一個jetty web服務器,啟動速度喜人,一旦啟動,修改了jsp,頁面上可以直接
反應出來,修改了servlet代碼,運行一下mvn compile也可以立馬反應出來,方便開發
在pom.xml中這樣配置:
<build> <finalName>frame-web</finalName><plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.1.6.v20100715</version>
<configuration> <scanIntervalSeconds>3</scanIntervalSeconds> <webAppConfig> <contextPath>/test</contextPath> </webAppConfig> </configuration> </plugin>
</plugins> </build></pre> </div>
然后命令行運行:mvn jetty:run訪問一下:localhost:8080/test/就可以看到你的index.jsp了
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
推薦閱讀
ASP開發入門+實戰電子書共50本 —下載目錄
小弟為大家整理50個ASP電子書籍,有入門,也有實戰電子書,做成了一個下載目錄,歡迎大家下載。 資源名稱部分預覽: ASP.NET開發實戰1200例_第I卷 《九天學會ASP》exe版電子書推薦...