沉睡森林@漂在北京

          本處文章除注明“轉載”外均為原創,轉載請注明出處。

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

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

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

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

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

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

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

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

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

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

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

          下面說些基本設置,打開D:\maven-2.0.4\conf\settings.xml
          1. 改變<localRepository>E:/app/m2/repository</localRepository> 目的:改變本地的數據倉庫目錄(存放從遠程下載的jar包),如果不改變也可以,如不改變,缺省目錄為:C:\Documents and Settings\主機名\.m2\repository
          2. 配置代理,主要目的是為了能從遠程下載jar包,根據實際的網路情況進行配置吧。因為我現在單位是有代理服務器的,如果不配置,就不能從遠程下載jar包了。我的配置如下(注意:如果你的網絡沒有代理服務器,就不用配置這個步驟)
                <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有不少不同,常用的命令有:

        1. 創建Maven的普通java項目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName    
        2. 創建Maven的Web項目:mvn archetype:create -DgroupId=com.mycompany.app
          -DartifactId=my-webapp
          -DarchetypeArtifactId=maven-archetype-webapp    
        3. 編譯源代碼:mvn compile (或者:mvn compiler:compile)   
        4. 編譯測試代碼:mvn test-compile    
        5. 運行測試:mvn test    
        6. 產生site:mvn site    
        7. 打包:mvn package    
        8. 在本地Repository中安裝jar:mvn install    
        9. 清除產生的項目:mvn clean    
        10. 生成eclipse項目:mvn eclipse:eclipse   
        11. 生成idea項目:mvn idea:idea   
        12. 組合使用goal命令,如只打包不測試:mvn -Dtest package    
        13. 編譯測試的內容:mvn test-compile   
        14. 只打jar包: mvn jar:jar   
        15. 只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile (這里要特別注意 -skipping 的靈活運用,當然也可以用于其他組合命令)   
        16. 清除eclipse的一些系統設置:mvn eclipse:clean   

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

          配置存儲庫

          要求項目的每個開發者必須在conf目錄中配置存儲庫是不方便的,所以Maven可以同時查看多個存儲庫并且將它們全部配置在pom.xml文件 中。讓我們看看一個例子,它展示了如何在應用程序用使用多個存儲庫。在以下從pom.xml文件摘錄的片斷中,我們設置了兩個存儲庫來讓Maven尋找依 賴項。Ibiblio一直是默認的存儲庫,我們又添加了Planet Mirror作為后援存儲庫。我們也可以讓團隊使用的本地web服務器作為第二個存儲庫。

          <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>

          ==================================================
          遇到的小問題解決。
          * 當建立一個工程后,執行 mvn eclipse:eclipse ,建立一個maven的工程,用eclipse打開后,發現報如下錯誤:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp   ,這是因為在Eclipse 沒有配置 M2_REPO 變量,配置步驟:window >> preferences >> Java >> Build Path >> Classpath Variables
          新建一個 M2_REPO 的變量,變量值指向你系統的Maven2的數據倉庫位置。如圖:


          ------------------------------------------
          * 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)依賴到本地的數據倉庫中?
          下面具一個如何把dwr.jar包上傳到本地數據倉庫的例子,一看例子,大家就明了了。
          - 下載dwr.jar包到本地,我把它放到了 C:/ (C盤根目錄),如圖示:


          - 進入“命令行提示符”,進入到C:/,然后執行 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,目錄結構為dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar如圖示:


            

        17. 評論

          # re: [轉]Maven2安裝總結 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倉庫里面  回復  更多評論
            

          主站蜘蛛池模板: 汽车| 东兴市| 大新县| 丰县| 南木林县| 蒙阴县| 平武县| 珠海市| 台中县| 定边县| 绿春县| 电白县| 敖汉旗| 昌都县| 开封市| 辽宁省| 宕昌县| 临邑县| 阳原县| 灵川县| 印江| 淮滨县| 塘沽区| 河源市| 满洲里市| 沙坪坝区| 探索| 诏安县| 青川县| 出国| 肃宁县| 长泰县| 缙云县| 仁寿县| 罗平县| 贵州省| 大关县| 九龙县| 新泰市| 深泽县| 洛隆县|