Loading...

          java .net

          maven的helloword

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

          一、maven介紹

          1、maven是什么

          http://maven.apache.org/
          官方解釋:Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。

          2、使用maven有什么好處,解決什么問題

          jar統一管理了:

          如果建立了一個本地的jar倉庫,那么所有人都是從倉庫里面下載jar,拷貝項目時只需要copy幾K的源碼即可!其次,依然是倉庫,使得每個人的jar版本都是一致的,不會出現因為版本不同,引起的莫名其妙的錯誤。
          項目的自動化:

          只需要mvn package命令,在eclipse里面,看run里面,只需要選擇就行了!它會自動的從編譯,測試開始,一直到打包,自動的運行,保證你的包沒有問題。

          我們在做多個不同的Java項目時,每個項目所用到的庫文件基本都是大同小異的,通常的做法是每個項目下面都會復制一份這些庫文件,甚至會把這些庫文件都提交到vss上去,這樣帶來的問題不僅是增大了項目占用的硬盤空間,而且也使包管理很混亂。

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

          還可以單元測試覆蓋率報表:

          image

          2、helloword

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

          2、安裝eclipse插件m2eclipse

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

          image

          禁用eclipse啟動時更新maven index 主要是每次eclipse啟動時都更新很煩人

          image

          添加自己的maven

          3、新建maven項目

          按照下圖步驟

          image

          • groupId定義了項目屬于哪個組,這個組往往和項目所在的組織或公司存在關聯。譬如在googlecode上建立了一個名為myapp的項目,那么groupId就應該是com.googlecode.myapp.
          • artifactId定義了當前Maven項目在組中唯一的ID,groupId為com.googlecode.myapp的例子中,你可能會為不同的子項目(模塊)分配artifactId,如myapputil、myappdomain、myappweb等。
          • version指定了項目當前的版本——1.0SNAPSHOT。SNAPSHOT意為快照,說明該項目還處于開發中,是不穩定的版本。隨著項目的發展,version會不斷更新,如升級為1.0、1.1SNAPSHOT、1.1、2.0等。
          • name元素聲明了一個對于用戶更為友好的項目名稱

          點擊Finish完成

          4、maven項目結構

          下圖為基于maven項目結構,這里跟我們以前的項目結構很不一樣,以前的項目結構約定俗成的只有兩塊 一個src 一個webRoot,當然這些都可以隨意配置,比如WebRoot有的叫WebContent

          image
          這里maven倡導約定優于配置,maven的約定就是以下目錄結構
          src/main/java 下存放java類
          src/main/webapp 下存放頁面文件(需要手動創建)
          src/main/resources 下存放資源文件
          src/test/java 下存放單元測試代碼
          src/test/resources 下存放測試資源文件

          5、添加jar包

          只需維護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上部署了一個maven倉庫,訪問地址http://172.20.66.230:8081/nexus/

          maven會根據pom.xml中的配置訪問230的倉庫下載對應的jar source 以及doc,下載到哪?這要看maven3/conf/settings.xml 55:

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

          6、編寫代碼

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

          在項目名上右鍵 run as -->Run Configurations

          image

          按圖配置,點擊Run即可。瀏覽器中訪問http://localhost:8080/MavenSSH/

          Maven運行的生命周期

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

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

          • 復制src/test/resources下的測試用資源文件到測試輸出目錄

          • 編譯src/test/java下的測試用例

          • 運行測試用例

          • 打包生成

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

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

          • 第一個次運行項目會比較慢,因為要下載jar包。

          • MavenSSH.rar是一個struts2與spring集成的例子,頁面用到了sitemesh div+css 也值得學習

          • 項目debug是運行在jetty(類似于tomcat的容器)中。

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

          評論

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

          Hi,請問,pre圖,什么軟件畫滴?  回復  更多評論   

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

          @air
          eclipse插件m2eclipse 中有這樣一個視圖  回復  更多評論   

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

          @豬
          謝謝~  回復  更多評論   

          # re: maven的helloword 2011-11-02 13:29 秦焜

          寫的不錯。
          不過我運行時候報
          web.xml does not exist at location  回復  更多評論   

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

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

          請問附件在哪里呢?
          能麻煩郵件一份吧,謝謝了。
          Luowenbiz@gmail.com  回復  更多評論   

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2011年4月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 连城县| 曲靖市| 峨眉山市| 土默特左旗| 新沂市| 会理县| 石首市| 彭州市| 新晃| 依安县| 衢州市| 应城市| 信丰县| 白城市| 广宗县| 扎囊县| 景宁| 合川市| 兴山县| 白城市| 荃湾区| 文山县| 安丘市| 个旧市| 孙吴县| 定结县| 方正县| 茶陵县| 三江| 郎溪县| 远安县| 施秉县| 科技| 霸州市| 额济纳旗| 鄂尔多斯市| 蓬溪县| 从江县| 东方市| 札达县| 温泉县|