Picses' sky

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

          使用maven[zz]

          Posted on 2007-07-20 22:27 Matthew Chen 閱讀(543) 評論(0)  編輯  收藏 所屬分類: Build Project
          使用maven
          2007-02-25 16:38

          maven的好處就不多說了,它在項目管理方面比Ant有較多優勢。現簡要說明一下相關配置和用法。

          首先當然是去apache網站去下載了。我下載的是1.0.2解壓版,把其解壓至D盤(當然這是任意的)。

          配置:1. MAVEN_HOME:D:\maven-1.0.2
                2. Path:%MAVEN_HOME%\bin
          如圖:

          這樣就配置好了,然后我們任意建一個目錄,在命令提示符下進入這個目錄,執行如下命令:maven genapp,一路回車,就建立了一個簡單的java工程,如何使其變為IDE工具idea支持的工程呢,只要執行maven idea即可。這里需要說明,必須把D:\maven-1.0.2\plugins下的maven-idea-plugin-1.5.jar換為maven-idea-plugin-1.6.jar,不然系統會找不到對應的modul,其實就是找不到對應的JDK。呵呵。其他的一些goal命令,可以慢慢學習。并且在maven.xml中可以擴展自己的goal命令。

          怎么讓maven輸出信息支持中文呢?.在lib目錄中找到maven-core-2.0.4.jar在org/apache/maven/messages目錄中找到messages_zh_CN.properties文件,把其拷貝到C:/,運行命令提示符,在C:/下執行如下語句:native2ascii messages\messages_zh_CN.properties>out.properties,這樣在C盤下就生成了out.properties,把其更名為:messages_zh_CN.properties,把其拷貝到maven.jar文件中即可。這樣maven的輸出信息就不會是亂碼了,而是完整的中文,呵呵。

          maven的依賴管理
          maven對項目依賴的庫文件進行集中管理,所有庫文件都以一定結構存放在repository中,并用artifactId,groupId, version三個屬性來標示它們。當項目需要某些庫文件時,只要指明這三個屬性即可。庫文件在repository中存儲結構也和這三個屬性緊密相關,其關系為${mave.repo.remote}//s/ -.。也就是假定repository的根目錄為/javarepository那么 groupId為spring,artifactId為spring-orm,版本(version)為1.1.3的jar的庫文件的存儲路徑為 /javarepository/spring/jars/spring-orm-1.1.3.jar。
          maven的repository通常放在對公眾開放的主機上,并由眾多的鏡像構成,最主要的是http://www.ibiblio.org/maven/。選擇哪些repository是通過 Java系統變量maven.repo.remote。比如下面的配置maven.repo.remote=http://ultra/maven/, http://www.ibiblio.org/maven/,http://boss.bekk.no/maven/,http://mirrors.sunsite.dk/mavenhttp://www.ganet.org/maven將使maven從www.ibiblio.org,boss.bekk.no, mirrors.sunsite.dk,www.ganet.org四個站點依次尋找依賴的文件。該變量可以在四個地方設置:

          ${project.home}/project.properties 
          ${project.home}/build.properties 
          ${user.home}/build.properties 
          -D maven命令行, 
          其優先級依次升高。通常在${maven.home.local}/build.properties中設置此變量。

          使用代理
          如果你只能通過代理訪問,不要緊,Maven為你提供了下列屬性: 

          代理屬性 描述 
          maven.proxy.host 代理的IP地址  
          maven.proxy.port 代理端口  
          maven.proxy.username 如果代理需要認證的話,在這里填寫用戶名。 User name if your proxy requires authentication.  
          maven.proxy.password 如果代理需要認證的話,在這里填寫密碼。  

          如果你實在需要代理,最好在${user.home}/build.properties文件中指定。 

          ## ----------------------------------------------------------
          ## ${user.home}/build.properties
          ## ----------------------------------------------------------
          .
          .
          maven.proxy.host = my.proxyserver.com
          maven.proxy.port = 8080
          maven.proxy.username = username
          maven.proxy.password = password
          .
          .
          使用多個遠程Repositories
          你可以在任何Maven可以處理的屬性文件中指定使用多個遠程Repositories,如: 

          maven.repo.remote = http://www.ibiblio.org/maven /,http://www.mycompany.com/maven/ 
          項目設置

          下面列舉一些常用的goal命令
          >> maven jar 打jar包,不過執行這個goal,mavan test和maven java:compile也會被執行。
          >> 當然也可以分開執行:maven test 單元測試 maven java:compile 編譯工程
          >> maven -Dmaven.test.skip jar 這樣可以跳過單元測試不執行,直接打jar包,節約時間。
          >> -D,--define arg   定義一個系統屬性
          >> -E,--emacs        輸出簡潔的日志信息
          >>  -X,--debug        輸出debug信息
          >>  -b,--nobanner     禁止 logo banner
          >>  -d,--dir arg      設置指定的工作目錄
          >>  -e,--exception    輸出異常堆棧信息
          >>  -f,--find arg     通過搜尋項目文件來確定執行的項目文件及其工作目錄
          >>  -g,--goals        顯示可用的目標
           >> -h,--help         顯示幫助信息
          >>  -i,--info         顯示系統信息
          >>  -o,--offline      離線構建
          >>  -p,--pom arg      指定項目文件
          >>  -v,--version      顯示版本號

          maven 的dependency 寫法
          <dependencies>
            <dependency>
              
          <groupId>springframework</groupId>
              
          <artifactId>spring-web</artifactId>
              
          <version>1.1.4</version>
            
          </dependency>

            <dependency>
              
          <groupId>jstl</groupId>
              
          <artifactId>jstl</artifactId>
              
          <version>1.1.2</version>
              <type>jar</type>
              <properties>
                <war.bundle>true</war.bundle>
              </properties>
            </dependency>

            <dependency>
              <groupId>dwr</groupId>
              <artifactId>dwr</artifactId>
              <jar>dwr.jar</jar>
              <properties>
                <war.bundle>true</war.bundle>
              </properties>
            </dependency>

          </dependencies>
          上面是三種dependency的寫法,第一種最簡單,不推薦使用,第二種是比較標準的寫法,第三種是沒有版本號情況下的寫法。其目錄結構如下(以第二種情況舉例):
          - repository
            - jstl                       (1)
              - jars
                  jstl-1.1.2.jar         (2)
                  jstl-1.1.2.jar.md5

          可以看出(1)處對應著dependency中的gruopId(2)處對應${artifactId}-${vsersion}.jar ,maven就是根據這種對應關系來定位依賴文件的。如果在本地的repository未找到與dependencies中定義的依賴文件,則會自動從mavenrepository站點中下載。Dependency中的<war.bundle>true</war.bundle>表示在執行maven war操作時該依賴文件將會復制到wepappWEB-INF/lib目錄下。

          注:本地repository的默認路徑為:%HOMEDRIVE%%HOMEPATH%\.maven\repository

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


          網站導航:
           
          主站蜘蛛池模板: 梅州市| 确山县| 杭锦旗| 大方县| 牟定县| 金堂县| 陆川县| 濉溪县| 宜川县| 黔西县| 弥勒县| 弥渡县| 威宁| 闽侯县| 吉首市| 平安县| 三江| 满洲里市| 丘北县| 新民市| 辽宁省| 辛集市| 金塔县| 扎赉特旗| 拜城县| 洪江市| 荥阳市| 南城县| 抚松县| 清水河县| 罗城| 宝山区| 镇沅| 昌乐县| 积石山| 桦川县| 营山县| 西藏| 新乐市| 金平| 巴楚县|