<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Loading...

    java .net

    maven的helloword

    最近在學(xué)習(xí)如何使用maven,做了一個(gè)demo(基于S2S整合),總結(jié)一下與大家分享,期待與大家討論以期快速進(jìn)步。

    一、maven介紹

    1、maven是什么

    http://maven.apache.org/
    官方解釋:Maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。

    2、使用maven有什么好處,解決什么問(wèn)題

    jar統(tǒng)一管理了:

    如果建立了一個(gè)本地的jar倉(cāng)庫(kù),那么所有人都是從倉(cāng)庫(kù)里面下載jar,拷貝項(xiàng)目時(shí)只需要copy幾K的源碼即可!其次,依然是倉(cāng)庫(kù),使得每個(gè)人的jar版本都是一致的,不會(huì)出現(xiàn)因?yàn)榘姹静煌鸬哪涿畹腻e(cuò)誤。
    項(xiàng)目的自動(dòng)化:

    只需要mvn package命令,在eclipse里面,看run里面,只需要選擇就行了!它會(huì)自動(dòng)的從編譯,測(cè)試開(kāi)始,一直到打包,自動(dòng)的運(yùn)行,保證你的包沒(méi)有問(wèn)題。

    我們?cè)谧龆鄠€(gè)不同的Java項(xiàng)目時(shí),每個(gè)項(xiàng)目所用到的庫(kù)文件基本都是大同小異的,通常的做法是每個(gè)項(xiàng)目下面都會(huì)復(fù)制一份這些庫(kù)文件,甚至?xí)堰@些庫(kù)文件都提交到vss上去,這樣帶來(lái)的問(wèn)題不僅是增大了項(xiàng)目占用的硬盤(pán)空間,而且也使包管理很混亂。

    我們可以這樣查看jar包的依賴關(guān)系,是不是很爽?!
    image

    還可以單元測(cè)試覆蓋率報(bào)表:

    image

    2、helloword

    1、下載Maven 附件中的maven3.jar 解壓到任意目錄

    2、安裝eclipse插件m2eclipse

    方式一:在線安裝 更新地址是:http://m2eclipse.sonatype.org/sites/m2e
    方式二:本地安裝 help-->install new softeware-->add-->name填寫(xiě)maven-->archive..-->jar:file:/../m2e.zip!/-->ok
    安裝完成重啟eclipse,在Window-->Preferences-->Maven下配置

    image

    禁用eclipse啟動(dòng)時(shí)更新maven index 主要是每次eclipse啟動(dòng)時(shí)都更新很煩人

    image

    添加自己的maven

    3、新建maven項(xiàng)目

    按照下圖步驟

    image

    • groupId定義了項(xiàng)目屬于哪個(gè)組,這個(gè)組往往和項(xiàng)目所在的組織或公司存在關(guān)聯(lián)。譬如在googlecode上建立了一個(gè)名為myapp的項(xiàng)目,那么groupId就應(yīng)該是com.googlecode.myapp.
    • artifactId定義了當(dāng)前Maven項(xiàng)目在組中唯一的ID,groupId為com.googlecode.myapp的例子中,你可能會(huì)為不同的子項(xiàng)目(模塊)分配artifactId,如myapputil、myappdomain、myappweb等。
    • version指定了項(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等。
    • name元素聲明了一個(gè)對(duì)于用戶更為友好的項(xiàng)目名稱

    點(diǎn)擊Finish完成

    4、maven項(xiàng)目結(jié)構(gòu)

    下圖為基于maven項(xiàng)目結(jié)構(gòu),這里跟我們以前的項(xiàng)目結(jié)構(gòu)很不一樣,以前的項(xiàng)目結(jié)構(gòu)約定俗成的只有兩塊 一個(gè)src 一個(gè)webRoot,當(dāng)然這些都可以隨意配置,比如WebRoot有的叫WebContent

    image
    這里maven倡導(dǎo)約定優(yōu)于配置,maven的約定就是以下目錄結(jié)構(gòu)
    src/main/java 下存放java類
    src/main/webapp 下存放頁(yè)面文件(需要手動(dòng)創(chuàng)建)
    src/main/resources 下存放資源文件
    src/test/java 下存放單元測(cè)試代碼
    src/test/resources 下存放測(cè)試資源文件

    5、添加jar包

    只需維護(hù)pom.xml
    比如添加struts2-core
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.0.11.2</version>
    </dependency>

    我在172.20.66.230上部署了一個(gè)maven倉(cāng)庫(kù),訪問(wèn)地址http://172.20.66.230:8081/nexus/

    maven會(huì)根據(jù)pom.xml中的配置訪問(wèn)230的倉(cāng)庫(kù)下載對(duì)應(yīng)的jar source 以及doc,下載到哪?這要看maven3/conf/settings.xml 55:

    <localRepository>F:/Maven3/repository</localRepository>

    6、編寫(xiě)代碼

    附件中有一個(gè)struts2+spring 的demo,解壓然后import eclipse

    在項(xiàng)目名上右鍵 run as -->Run Configurations

    image

    按圖配置,點(diǎn)擊Run即可。瀏覽器中訪問(wèn)http://localhost:8080/MavenSSH/

    Maven運(yùn)行的生命周期

    • 復(fù)制src/main/resources資源文件到輸出目錄

    • 編譯src/main/java下的源代碼

    • 復(fù)制src/test/resources下的測(cè)試用資源文件到測(cè)試輸出目錄

    • 編譯src/test/java下的測(cè)試用例

    • 運(yùn)行測(cè)試用例

    • 打包生成

    ===========================

    • 以上是一個(gè)簡(jiǎn)單的例子,只是用它獲取依賴的jar包 。maven還有很多諸如項(xiàng)目管理方面的功能,比如文檔編制、發(fā)布管理、配置管理...

    • 第一個(gè)次運(yùn)行項(xiàng)目會(huì)比較慢,因?yàn)橐螺djar包。

    • MavenSSH.rar是一個(gè)struts2與spring集成的例子,頁(yè)面用到了sitemesh div+css 也值得學(xué)習(xí)

    • 項(xiàng)目debug是運(yùn)行在jetty(類似于tomcat的容器)中。

    posted on 2011-04-18 16:09 閱讀(1332) 評(píng)論(5)  編輯  收藏 所屬分類: 學(xué)習(xí)java

    評(píng)論

    # re: maven的helloword 2011-06-10 10:49 air

    Hi,請(qǐng)問(wèn),pre圖,什么軟件畫(huà)滴?  回復(fù)  更多評(píng)論   

    # re: maven的helloword 2011-06-10 11:30

    @air
    eclipse插件m2eclipse 中有這樣一個(gè)視圖  回復(fù)  更多評(píng)論   

    # re: maven的helloword 2011-06-10 11:40 air

    @豬
    謝謝~  回復(fù)  更多評(píng)論   

    # re: maven的helloword 2011-11-02 13:29 秦?zé)j

    寫(xiě)的不錯(cuò)。
    不過(guò)我運(yùn)行時(shí)候報(bào)
    web.xml does not exist at location  回復(fù)  更多評(píng)論   

    # re: maven的helloword 2012-01-10 09:39 Luowen

    你好,
    “附件中有一個(gè)struts2+spring 的demo,解壓然后import eclipse”

    請(qǐng)問(wèn)附件在哪里呢?
    能麻煩郵件一份吧,謝謝了。
    Luowenbiz@gmail.com  回復(fù)  更多評(píng)論   

    公告

    希望有一天

    我能用鼠標(biāo)雙擊我的錢包

    然后選中一張100元

    按住“ctrl+c”

    接著不停的“ctrl+v”

    嘻嘻~~~笑醒~~~



    導(dǎo)航

    <2012年1月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(102)

    隨筆檔案(398)

    文章分類

    文章檔案(10)

    有趣網(wǎng)絡(luò)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久精品亚洲乱码伦伦中文| 99亚洲精品卡2卡三卡4卡2卡| 亚洲片国产一区一级在线观看| 国产精品爱啪在线线免费观看| 中文字幕不卡高清免费| 国产精品成人亚洲| 亚洲性色AV日韩在线观看| 77777_亚洲午夜久久多人| 亚洲国产综合无码一区| 亚洲成a人无码av波多野按摩| 午夜无遮挡羞羞漫画免费| 1000部无遮挡拍拍拍免费视频观看| 中文字幕成人免费高清在线视频| 美女被免费视频网站a| 亚洲综合精品伊人久久| 亚洲国产成人久久99精品| 91亚洲国产成人精品下载| 亚洲精品无码午夜福利中文字幕| 亚洲日韩中文字幕日韩在线| 四虎影视永久免费观看| 国产成人精品免费视频大全五级| 国产成人免费爽爽爽视频| 丁香花免费完整高清观看| 在线观看成人免费视频不卡| 在线免费观看国产| 1000部啪啪未满十八勿入免费| 日韩电影免费在线观看| 97人妻精品全国免费视频 | 日本特黄特色aa大片免费| 一本无码人妻在中文字幕免费| 国产日本一线在线观看免费| 中文字幕乱码免费视频| 国产免费毛不卡片| 最近免费中文字幕大全| 成人免费无码大片A毛片抽搐| 青青青青青青久久久免费观看| 国产美女精品视频免费观看| 国产一级高清免费观看| www国产亚洲精品久久久日本| 亚洲精品成人片在线观看| 国产亚洲大尺度无码无码专线|