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

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

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

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    淺嘗MAVEN[zz]

    Posted on 2007-07-20 22:27 Matthew Chen 閱讀(357) 評論(0)  編輯  收藏 所屬分類: Build Project

    淺嘗MAVEN- -

                                          

    最近老大要求我們把一個項目從ANT移植到maven,我就把我學習的過程以及把遇到的問題簡單的敘述一下。(由于本人也是剛用MAVEN,很多東西做的不好)。

    一,安裝及簡單配置

     1.我用的是1.1beta1(版本的不同可能會導致一些問題)。
        下載地址:http://maven.apache.org/start/download.html
     2.環境變量
        加MAVEN_HOME,并將%MAVEN_HOME%\bin加入PATH變量中
     3.檢查是否安裝成功
        只要在命令提示行中打入:maven -v。如出現版本信息則說明安裝正確。
     4.配置local repository和remote repository
        為了讓所有的工程共享這個配置,可以在你的USER_HOME(即documents and settings\用戶名\)下建立一個build.properties文件。
        maven.repo.local=D:/Maven 1.0.2/local/repository
        maven.repo.remote=http://192.168.82.217/repo(可選)
        在這里我的remote repo是自己建的,默認的是ibiblio.org,關于remote.repo的其他站點可以參照網上其他blog。
        如果你需要代理則要加上:
        maven.proxy.host=
        maven.proxy.port=
        maven.proxy.username=
        maven.proxy.password=
        假如使用以上方法仍不能連接,那只有自己建了。(最近公司換域,就是用代理都上不去-_-#!)
        建remote.repo很容易,只需要參照http://www.ibiblio.org/maven/上的目錄結構,建立相應的站點。只不過包要自己去 http://www.ibiblio.org/maven/上手動下載。哎~ 真是慘啊。

    二,maven的簡單運用
     
        用maven -h 可以查看一些簡單的命令,用maven -g查看現有的插件及Goal(類似ant中的target)。

     
       1.用maven genapp 創建一個application (插件信息包括goals和properties可以查看http://maven.apache.org/)
     會在命令行的當前目錄中建立。
     
     maven genapp
     接下來會讓你選擇一個模版(插件信息里有) [default]
            指定一個project id(似乎在生成的文檔中用到) [test]
            指定一個name [test]
            接著是指定package [maven.ex]
     
            project.xml對該工程作了詳細描述
            請參照:http://www.zahui.com/html/6/36570.htm
     
    2.用java:compile編譯剛剛建立的工程
       可以看到多了一個target目錄,用于存放編譯后的class文件和其他產生物。
     
    3.test:test
       由于剛剛的工程存在測試類,所以可用這個goal來進行測試。 在target目錄又多了一個test-classes和一個test-reports,相信一看名字就明白了。

     4.dist:build
        會自動完成一系列的任務,其中有任務會在target目錄生成很詳細的文檔,target\projectname-1.0\bin\projectname-1.0\下可以找到完整的html文檔。
     
     5.eclipse
        使用該Goal可以生成一個eclipse工程,直接在eclipse中導入就可以了。其中classpath是根據project.xml中定義的dependency,需要在eclipse:java-build path -classpath variable中加一個MAVEN_REPO的變量,指向你的local repo.

    三,自定義goal
     
     由于maven完全支持ant語法,對于ant的用戶將更為熟悉。
     
     要自定義goal,需要在工程目錄下建一個maven.xml文件。

     比如:
     <goal name="project:deploy">
      <copy todir="${tomcat.webapps}/app">
       <fileset dir="${webroot}"/>
      </copy>
     </goal>
      
     只不過target變成了goal而已
     
     preGoal:在指定的goal之前執行相應的goal
     比如:
    <preGoal name="goal1">可以是自定義的也可以是插件自帶的
      <attainGoal name="goal2"/>
              ……
      <attainGoal name="……"/>
     </preGoal>    
      
     即為在執行goal1之前,執行goal2

     postGoal:在指定的goal之后...
      

    四,使用maven的scm插件,連接cvs服務器
         在project.xml中的 節點指定了cvsroot,cvsroot的格式是固定的,如果服務器用低版本的cvsnt,建立的cvsroot是有絕對路徑的,比如:
           scm:cvs:pserver:user:123456@192.168.82.217:E:/CVS/app
         會被認為是不正確的。而且密碼也不在里面給出(該插件似乎有username,password的屬性,可在properties文件中給出,不過我嘗試了沒用,或許我用錯了,也可能因為是beta版,在1.0.2的版本中是沒有這個屬性的)。
         高版本的cvsnt才有虛擬路徑,在maven中這樣的路徑才被認為是正確的:
         scm:cvs:pserver:user@192.168.82.217:/cvs:app
     
         這樣要checkout的話必須先得登陸cvs。
     
         這個插件在開發中一般是不會使用到的,由于我們要用cruisecontrol+maven實現daily build所以才會用到。 如果你需要使用這個插件,你會發現你在用checkout-project的時候,還會遇到一些問題。

    五,在eclipse中使用mevenide插件。
       
         通過eclipse的help->software updates ->find and install->search for new features->new remote site
         加入插件地址:http://mevenide.codehaus.org/release/eclipse/update/site.xml 選擇需要的版本下載,重啟工作臺后即可以使用了,使用和配置比較簡單。
         不過可能會遇到找不到org.apache.xerces.jaxp.SAXParserFactoryImpl的問題,是因為在MAVEN_HOME\lib下缺少一個目錄,下載一個1.0.2的版本就知道缺少什么文件了。不直接用1.0.2的原因是因為1.0.2在test:test的時候可能會發生有些class找不到的情況,解決的方法沒有前者的快些。
         還有個問題,上次有人問我怎樣一下子把project.xml中dependency的jar加到eclipse的classpath中,想到elipse的maven workshop插件,但使用起來也不是很好,在用overwrite classpath with POM時出錯,也得用add dependency to classpath(此方法根據配置中的local repo,讓你選擇所需的jar包和version,在向project.xml中添加dependency時有用)一個一個加。其實可以用剛剛提到的maven eclipse來重新生成eclipse工程,它會把project.xml中的dependency自動加到eclipse插件里。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲中文字幕无码久久2017 | 日韩一区二区三区免费播放| 亚洲欧洲无码一区二区三区| 亚洲乱码无限2021芒果| 精品国产日韩久久亚洲| 一级毛片正片免费视频手机看| 四虎成人免费网址在线| 亚洲av无码乱码在线观看野外| 亚洲无av在线中文字幕| 亚洲无码一区二区三区| a毛片免费在线观看| 又大又硬又爽又粗又快的视频免费| 成熟女人特级毛片www免费| 中文字幕亚洲第一| 亚洲性色精品一区二区在线| 日韩免费a级毛片无码a∨| 奇米影视亚洲春色| 99久久精品毛片免费播放| 久久久久无码精品亚洲日韩| 亚洲熟妇AV乱码在线观看| 国产精品成人免费一区二区| 亚洲欧洲无码AV不卡在线| 国产在线观看免费不卡| 亚洲综合亚洲国产尤物| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 无码AV动漫精品一区二区免费| 亚洲国产专区一区| 亚洲综合一区国产精品| 国产在线ts人妖免费视频| 国产精品免费久久久久影院| 亚洲伊人久久精品影院| 亚洲美女视频免费| 亚洲成a人无码亚洲成av无码| 美丽的姑娘免费观看在线播放| 久久精品国产亚洲av麻豆图片| 一级毛片全部免费播放| 亚洲人成人无码网www国产| 久久免费国产精品一区二区| 亚洲日韩国产成网在线观看| 国产成人不卡亚洲精品91| 91精品免费国产高清在线|