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

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

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

    沉睡森林@漂在北京

    本處文章除注明“轉(zhuǎn)載”外均為原創(chuàng),轉(zhuǎn)載請注明出處。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      152 隨筆 :: 4 文章 :: 114 評論 :: 0 Trackbacks

    以前雖然使用過Maven1.0,當(dāng)發(fā)現(xiàn)現(xiàn)在的Maven2.0的變化和1.0比起來變化很大,配置上倒還一樣,但是使用上有很大不同,如果你還用1.0的命令,會發(fā)現(xiàn)許多不能使用。閑話少敘,進(jìn)入正題。

    首先當(dāng)然去Apache網(wǎng)站下載Maven2了。下載地址:http://maven.apache.org/download.html 。我下載的版本是maven-2.0.4-bin.zip

    然后我把maven-2.0.4-bin.zip解壓到D:\maven-2.0.4

    下面就是配置環(huán)境變量了,這和1.0的版本是一樣的。(1)MAVEN_HOME:D:\maven-2.0.4 (2)在Path 中加入%MAVEN_HOME%\bin,如下圖示:

    這樣配置就OK了。然后,我建立了如下目錄:E:\app\mavenApp,當(dāng)然這些可以隨便建立,呵呵。

    下面說一些Maven1.x和Maven2.x的不同(一些摘自一些網(wǎng)友文章)
    ------------------------------------
    Maven2 把配置文件壓縮成了pom.xmlsettings.xml 兩個(gè)文件,簡潔了不少。POM是Maven的核心對象模型,在Maven2中POM已由project.xml轉(zhuǎn)移到pom.xml中使用,版本也由3升級為4。對于項(xiàng)目,一般只需要pom.xml就行了。在Maven2中不需要也不提倡使用maven.xml

    生命周期的引入
    在Maven2中有了明確的生命周期概念,而且都提供與之對應(yīng)的命令,使得項(xiàng)目構(gòu)建更加清晰明了。主要的生命周期階段:

    validate,驗(yàn)證工程是否正確,所有需要的資源是否可用。
    compile,編譯項(xiàng)目的源代碼。
    test-compile,編譯項(xiàng)目測試代碼。
    test,使用已編譯的測試代碼,測試已編譯的源代碼。
    package,已發(fā)布的格式,如jar,將已編譯的源代碼打包。
    integration-test,在集成測試可以運(yùn)行的環(huán)境中處理和發(fā)布包。
    verify,運(yùn)行任何檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)。
    install,把包安裝在本地的repository中,可以被其他工程作為依賴來使用
    deploy,在整合或者發(fā)布環(huán)境下執(zhí)行,將最終版本的包拷貝到遠(yuǎn)程的repository,使得其他的開發(fā)者或者工程可以共享。
    generate-sources,產(chǎn)生應(yīng)用需要的任何額外的源代碼,如xdoclet。

    新增Dependency Scope
    在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可以使用5個(gè)值:

    compile,缺省值,適用于所有階段,會隨著項(xiàng)目一起發(fā)布。
    provided,類似compile,期望JDK、容器或使用者會提供這個(gè)依賴。如servlet.jar。
    runtime,只在運(yùn)行時(shí)使用,如JDBC驅(qū)動(dòng),適用運(yùn)行和測試階段。
    test,只在測試時(shí)使用,用于編譯和運(yùn)行測試代碼。不會隨項(xiàng)目發(fā)布。
    system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。
    ------------------------------------

    下面說些基本設(shè)置,打開D:\maven-2.0.4\conf\settings.xml
    1. 改變<localRepository>E:/app/m2/repository</localRepository> 目的:改變本地的數(shù)據(jù)倉庫目錄(存放從遠(yuǎn)程下載的jar包),如果不改變也可以,如不改變,缺省目錄為:C:\Documents and Settings\主機(jī)名\.m2\repository
    2. 配置代理,主要目的是為了能從遠(yuǎn)程下載jar包,根據(jù)實(shí)際的網(wǎng)路情況進(jìn)行配置吧。因?yàn)槲椰F(xiàn)在單位是有代理服務(wù)器的,如果不配置,就不能從遠(yuǎn)程下載jar包了。我的配置如下(注意:如果你的網(wǎng)絡(luò)沒有代理服務(wù)器,就不用配置這個(gè)步驟)
          <proxy>
           <id>optional</id>
           <active>true</active>
           <protocol>http</protocol>
           <host>192.168.17.100</host>
           <port>8889</port>
           <nonProxyHosts>192.168.*.*</nonProxyHosts>
         </proxy>



    下面就是一些goal命令了,這里和Maven1有不少不同,常用的命令有:

  • 創(chuàng)建Maven的普通java項(xiàng)目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName    
  • 創(chuàng)建Maven的Web項(xiàng)目:mvn archetype:create -DgroupId=com.mycompany.app
    -DartifactId=my-webapp
    -DarchetypeArtifactId=maven-archetype-webapp    
  • 編譯源代碼:mvn compile (或者:mvn compiler:compile)   
  • 編譯測試代碼:mvn test-compile    
  • 運(yùn)行測試:mvn test    
  • 產(chǎn)生site:mvn site    
  • 打包:mvn package    
  • 在本地Repository中安裝jar:mvn install    
  • 清除產(chǎn)生的項(xiàng)目:mvn clean    
  • 生成eclipse項(xiàng)目:mvn eclipse:eclipse   
  • 生成idea項(xiàng)目:mvn idea:idea   
  • 組合使用goal命令,如只打包不測試:mvn -Dtest package    
  • 編譯測試的內(nèi)容:mvn test-compile   
  • 只打jar包: mvn jar:jar   
  • 只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile (這里要特別注意 -skipping 的靈活運(yùn)用,當(dāng)然也可以用于其他組合命令)   
  • 清除eclipse的一些系統(tǒng)設(shè)置:mvn eclipse:clean   

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

    配置存儲庫

    要求項(xiàng)目的每個(gè)開發(fā)者必須在conf目錄中配置存儲庫是不方便的,所以Maven可以同時(shí)查看多個(gè)存儲庫并且將它們?nèi)颗渲迷趐om.xml文件 中。讓我們看看一個(gè)例子,它展示了如何在應(yīng)用程序用使用多個(gè)存儲庫。在以下從pom.xml文件摘錄的片斷中,我們設(shè)置了兩個(gè)存儲庫來讓Maven尋找依 賴項(xiàng)。Ibiblio一直是默認(rèn)的存儲庫,我們又添加了Planet Mirror作為后援存儲庫。我們也可以讓團(tuán)隊(duì)使用的本地web服務(wù)器作為第二個(gè)存儲庫。

    <repositories>
         <repository>
           <id>Ibiblio</id>
           <name>Ibiblio</name>
           <url>http://www.ibiblio.org/maven/</url>
         </repository>
         <repository>
           <id>PlanetMirror</id>
           <name>Planet Mirror</name>
            <url>http://public.planetmirror.com/pub/maven/</url>
         </repository>
       </repositories>

    ==================================================
    遇到的小問題解決。
    * 當(dāng)建立一個(gè)工程后,執(zhí)行 mvn eclipse:eclipse ,建立一個(gè)maven的工程,用eclipse打開后,發(fā)現(xiàn)報(bào)如下錯(cuò)誤:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp   ,這是因?yàn)樵贓clipse 沒有配置 M2_REPO 變量,配置步驟:window >> preferences >> Java >> Build Path >> Classpath Variables
    新建一個(gè) M2_REPO 的變量,變量值指向你系統(tǒng)的Maven2的數(shù)據(jù)倉庫位置。如圖:


    ------------------------------------------
    * POM.XML 繼承的寫法
    <project xmlns="      xmlns:xsi="      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0      <modelVersion>4.0.0</modelVersion>
         <groupId>org.apache.hivemind</groupId>
         <artifactId>hivemind-examples</artifactId>
         <packaging>jar</packaging>
         <version>2.0-alpha-1</version>
         <parent>
             <groupId>org.apache.hivemind</groupId>
             <artifactId>hivemind-project</artifactId>
             <version>2.0-alpha-1</version>
             <relativePath>../pom.xml</relativePath>
         </parent>

         <name>HiveMind Examples</name>
         <inceptionYear>2003</inceptionYear>
         <dependencies>
             <dependency>
                 <groupId>org.apache.hivemind</groupId>
                 <artifactId>hivemind-framework</artifactId>
                 <version>2.0-alpha-1</version>
             </dependency>

    * 如何安裝Jar(或war)依賴到本地的數(shù)據(jù)倉庫中?
    下面具一個(gè)如何把dwr.jar包上傳到本地?cái)?shù)據(jù)倉庫的例子,一看例子,大家就明了了。
    - 下載dwr.jar包到本地,我把它放到了 C:/ (C盤根目錄),如圖示:


    - 進(jìn)入“命令行提示符”,進(jìn)入到C:/,然后執(zhí)行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 這樣就把dwr傳到了本地倉庫中(我的本地倉庫地址為:E:\app\m2\repository\),上傳到倉庫中的jar包名為dwrDart-1.0.jar,目錄結(jié)構(gòu)為dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar如圖示:


      

  • 評論

    # re: [轉(zhuǎn)]Maven2安裝總結(jié) 2009-07-06 13:37 王兵
    mvn install:install-file -Dfile=xxx.jar -DgroupId=xxx.yyy.kkk -DartifactId=AAAA -Dversion=1.0 -Dpackaging=jar

    安裝jar包到本地的maven倉庫里面  回復(fù)  更多評論
      

    主站蜘蛛池模板: 日本无吗免费一二区| 在线观看人成视频免费| 国产亚洲美日韩AV中文字幕无码成人 | 免费看大美女大黄大色| 激情内射亚洲一区二区三区爱妻| 91免费福利精品国产| 亚洲人成电影在线天堂| 久久国产精品萌白酱免费| 亚洲一区二区三区电影| 在线天堂免费观看.WWW| 在线观看亚洲AV日韩A∨| 日本午夜免费福利视频| 日韩一级片免费观看| 久久久久亚洲爆乳少妇无| 中国一级特黄的片子免费| 亚洲电影免费在线观看| 成人在线免费看片| 色婷五月综激情亚洲综合| 女人18一级毛片免费观看| 曰批全过程免费视频免费看| 亚洲无码精品浪潮| A片在线免费观看| 亚洲成a人片在线观看中文!!!| 三年片在线观看免费大全| 亚洲爆乳AAA无码专区| 国外亚洲成AV人片在线观看| 久久久免费精品re6| 亚洲女女女同性video| 国产亚洲情侣一区二区无| 亚欧免费一级毛片| 亚洲欧洲国产综合AV无码久久| 亚洲国产香蕉人人爽成AV片久久| 国产免费无码AV片在线观看不卡 | 亚洲毛片网址在线观看中文字幕 | 久久免费看黄a级毛片| 亚洲av无码无线在线观看| 亚洲精品无码国产| 女人18毛片a级毛片免费| 中文字字幕在线高清免费电影| 亚洲最大黄色网址| 亚洲午夜日韩高清一区|