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

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

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

    Loading...

    java .net

    2010年11月15日

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

    一、maven介紹

    1、maven是什么

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

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

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

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

    只需要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定義了項目屬于哪個組,這個組往往和項目所在的組織或公司存在關聯(lián)。譬如在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意為快照,說明該項目還處于開發(fā)中,是不穩(wěn)定的版本。隨著項目的發(fā)展,version會不斷更新,如升級為1.0、1.1SNAPSHOT、1.1、2.0等。
    • name元素聲明了一個對于用戶更為友好的項目名稱

    點擊Finish完成

    4、maven項目結構

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

    image
    這里maven倡導約定優(yōu)于配置,maven的約定就是以下目錄結構
    src/main/java 下存放java類
    src/main/webapp 下存放頁面文件(需要手動創(chuàng)建)
    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會根據(jù)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還有很多諸如項目管理方面的功能,比如文檔編制、發(fā)布管理、配置管理...

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

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

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

    posted @ 2011-04-18 16:09 豬 閱讀(1332) | 評論 (5)編輯 收藏

    如果部署GAE時正在upload files時退出,下次部署時會報錯

    Another transaction by user is already in progress for this app and major version. That user can undo the transaction with appcfg.py's "rollback" command

     

    找到eclipse中的GAE SDK目錄

    如:D:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle.1.3.8_1.3.8.v201010161055\appengine-java-sdk-1.3.8\bin

     

    執(zhí)行命令

    appcfg.cmd rollback 后面跟gae項目war所在目錄

    如 appcfg.cmd rollback D:/spring/eclipse_workspace/taobaoke/war

     

    執(zhí)行:

    ********************************************************
    Warning: Future versions of the Dev App Server will require Java 1.6 or later. P
    lease upgrade your JRE.
    ********************************************************
    Reading application configuration data...
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AppEngineWebXmlReader read
    AppEngineWebXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/ap
    pengine-web.xml
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
    adConfigXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/we
    b.xml
    2010-11-15 9:34:23 com.google.apphosting.utils.config.AbstractConfigXmlReader re
    adConfigXml
    信息: Successfully processed D:/spring/eclipse_workspace/taobaoke/war\WEB-INF/cr
    on.xml
    Beginning server interaction for taokeapp...
    0% Rolling back the update.
    Success.
    Cleaning up temporary files...

    posted @ 2010-11-15 09:55 豬 閱讀(425) | 評論 (0)編輯 收藏

    公告

    希望有一天

    我能用鼠標雙擊我的錢包

    然后選中一張100元

    按住“ctrl+c”

    接著不停的“ctrl+v”

    嘻嘻~~~笑醒~~~



    導航

    <2010年11月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    統(tǒng)計

    常用鏈接

    留言簿(6)

    隨筆分類(102)

    隨筆檔案(398)

    文章分類

    文章檔案(10)

    有趣網(wǎng)絡

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日韩v无码中文字幕| 成人免费毛片视频| 久久久久亚洲AV成人网人人网站 | 亚洲一区二区三区在线观看精品中文| 久久精品国产亚洲AV天海翼 | 国产成人A亚洲精V品无码| 在线播放亚洲精品| 亚洲国产成人久久综合一区77 | 亚洲阿v天堂在线| 国产午夜精品免费一区二区三区| 国产亚洲一区二区手机在线观看| 最好免费观看高清在线| 久久亚洲AV成人无码电影| 免费观看无遮挡www的视频| 亚洲五月丁香综合视频| 热99re久久精品精品免费| 特级毛片免费观看视频| 亚洲精品国精品久久99热一| 日本免费中文视频| 亚洲人成黄网在线观看| 国产精品免费视频网站| 午夜免费国产体验区免费的| 亚洲乱码国产一区三区| 91香蕉在线观看免费高清| 亚洲国产日韩精品| 亚洲综合另类小说色区色噜噜| 成全视频高清免费观看电视剧| 亚洲黄色片在线观看| 日韩精品免费电影| 岛国大片免费在线观看| 精品国产日韩亚洲一区91| 国产偷窥女洗浴在线观看亚洲| 久久精品免费电影| 亚洲国产成人AV在线播放| 亚洲精品视频在线观看免费| 日本亚洲欧美色视频在线播放| 在线播放亚洲第一字幕| 免费观看国产网址你懂的| 黄页网站在线免费观看| 久久亚洲精品成人av无码网站| 免费黄色一级毛片|