<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 閱讀(359) 評(píng)論(0)  編輯  收藏 所屬分類: Build Project

    淺嘗MAVEN- -

                                          

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

    一,安裝及簡(jiǎn)單配置

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

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

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

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

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

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

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

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

    五,在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 選擇需要的版本下載,重啟工作臺(tái)后即可以使用了,使用和配置比較簡(jiǎn)單。
         不過可能會(huì)遇到找不到org.apache.xerces.jaxp.SAXParserFactoryImpl的問題,是因?yàn)樵贛AVEN_HOME\lib下缺少一個(gè)目錄,下載一個(gè)1.0.2的版本就知道缺少什么文件了。不直接用1.0.2的原因是因?yàn)?.0.2在test:test的時(shí)候可能會(huì)發(fā)生有些class找不到的情況,解決的方法沒有前者的快些。
         還有個(gè)問題,上次有人問我怎樣一下子把project.xml中dependency的jar加到eclipse的classpath中,想到elipse的maven workshop插件,但使用起來也不是很好,在用overwrite classpath with POM時(shí)出錯(cuò),也得用add dependency to classpath(此方法根據(jù)配置中的local repo,讓你選擇所需的jar包和version,在向project.xml中添加dependency時(shí)有用)一個(gè)一個(gè)加。其實(shí)可以用剛剛提到的maven eclipse來重新生成eclipse工程,它會(huì)把project.xml中的dependency自動(dòng)加到eclipse插件里。


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合无码一区二区三区| 暖暖在线视频免费视频| 久久久久亚洲AV无码专区首JN| 国产猛烈高潮尖叫视频免费 | 免费一区二区视频| 黄色片在线免费观看| 久久精品亚洲一区二区| www视频免费看| 国产色爽免费无码视频| 免费看内射乌克兰女| 亚洲乱码国产乱码精华| 亚洲人成网站在线观看播放青青| 亚洲AV无码专区亚洲AV伊甸园| 亚洲AV无码一区二三区| 日韩一品在线播放视频一品免费| 国产精品成人69XXX免费视频| 亚洲中文字幕久久精品无码VA| 亚洲精品福利网站| 亚洲综合成人网在线观看| 国产亚洲一区二区手机在线观看| 亚洲成aⅴ人片久青草影院| 国产免费啪嗒啪嗒视频看看| 大香人蕉免费视频75| 最近中文字幕mv手机免费高清 | 99人中文字幕亚洲区| 亚洲AV无码成人网站久久精品大| 亚洲精品午夜国产VA久久成人| 国产精品V亚洲精品V日韩精品| 亚洲国产天堂久久综合| 亚洲黄黄黄网站在线观看| 亚洲国产精品自产在线播放| www.亚洲色图| 亚洲精品视频免费在线观看| 一级毛片免费播放| 18级成人毛片免费观看| ww在线观视频免费观看| 猫咪社区免费资源在线观看| 免费观看美女裸体网站| 免费一看一级毛片全播放| 久久精品国产精品亚洲人人| 中文字幕亚洲无线码a|