空間站

          北極心空

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          作者:江南白衣 

              看著log4j-2.13.jar被每個項目每個版本里一次又一次無限下載,你就會覺得用Maven2 管理Library實在很環保。

               而且,Java的類庫也急需擺脫這種無身份無地位一個jar包隨處擺放的境況。Maven給Jar以名份是一個好方向。

               其實Ruby和php都已有了這樣的管理工具和官方網站,所有的Ruby包在機器上都像rpm那樣是installed的。Maven既然代表了Java,但愿也能好好發展。

               完全使用Maven來做全部事情有點超前,因此我也只是是用它的library管理功能,真正用的深入的是pesome郁也風。

             1.  查找Jar包在官網的路徑

              http://www.mavenregistry.com/  ,太實用了。

             2. 用Ant  調Maven管理 JAR
              
             SpringSide使用maven2的ant task,不需要用戶裝maven,直接用ant腳本來下載依賴包并copy到$springside_home/lib。腳本如下:

           <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">    
               
          <classpath>
                       <pathelement location="lib/maven-artifact-ant-2.0.2-dep.jar"/>
                </classpath>
           </typedef>
           <artifact:dependencies pathId="maven.classpath" filesetId="maven.fileset">
                  <artifact:pom file="pom.xml"/> 
           
          </artifact:dependencies>

           <copy todir="lib/">
                  <fileset refid="maven.fileset"/>
                  <mapper type="flatten"/>   
           
          </copy>

              第1句從maven-artifact-ant-2.0.2-dep.jar讀antlib.xml,讀出一堆maven的task。

              第2句分析pom.xml里的jar,如果沒有就上http://repo1.maven.org/maven2 把jar下載到${user.home}/.m2/目錄。并把所有jar定義成ant的fileset對象--maven.fileset。

               第3句把maven.fileset定義的,放在${user.home}/.m2/里的jar 拷貝到項目lib目錄。

            
              不過,相對來講Maven2還很不成熟,比如很多項目的pom是亂寫的,比如maven官網的速度實在太差,還經常抽筋死掉,比如有一些想要的新版官網上沒有。

              3. 自建私服
           
               自己建個私服是不錯的主意。其實也簡單,隨便拿臺http服務器,把${user.home}/.m2/ 目錄傳上去就行了
               在pom文件中,把私服的http url寫在官網的前面。   

           <repositories>
                  
          <repository>
                      
          <id>springside</id>
                
                <url>http://www.springside.org.cn/maven2</url>
                  
          </repository>
                  
          <repository>
                      
          <id>maven</id>
                      
          <name>slowly office site</name>
                      
          <url>http://repo1.maven.org/maven2</url>
                  
          </repository>
              
          </repositories>


             4. 在私服加入自己的jar包

              對于官網沒有的新版,按目錄路徑傳一個jar包,加一個最簡單的pom文件,并且為它們生成checksum文件,用ant的task就可以:

            <target name="checksum" description="為maven私服上的文件生成CHECKSUM">
                  
          <checksum file="C:\checksum\spring-mock-2.0-m3.pom" algorithm="SHA" fileext=".sha1"/>
              
          </target>



          相關文章:
          UTF-8、Subversion、Maven2--2007年的項目特征

          posted on 2007-04-18 14:44 蘆葦 閱讀(250) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 锡林浩特市| 重庆市| 攀枝花市| 刚察县| 海晏县| 灵宝市| 买车| 普宁市| 波密县| 刚察县| 隆林| 博湖县| 宝清县| 建湖县| 沙坪坝区| 绵阳市| 云安县| 崇明县| 饶阳县| 开鲁县| 稷山县| 丰宁| 中江县| 招远市| 巴马| 河源市| 新河县| 阿拉尔市| 丹巴县| 富阳市| 庆城县| 赣榆县| 淅川县| 彰化县| 商丘市| 扶绥县| 凤阳县| 南川市| 合作市| 汉中市| 堆龙德庆县|