JavaScud | Forum | JIRA | Blog |
  Dashboard > SpringSide > Home > MavenGuide
  SpringSide Log In View a printable version of the current page.  
  MavenGuide
Added by calvin, last edited by calvin on Aug 31, 2006  (view change)
Labels: 
(None)

用Maven 管理Jar

     看着log4j-2.13.jar被每个项目每个版本里一次又一次无限下载,你就会觉得用Maven2 管理Library实在很环保。

     完全使用Maven来做全部事情有点超前,因此我也只是用它的library管理功能,Maven会将所有下载回来的jar按目录层次结构存放于C:/Documentment and Setting/your name/.m2/ 目录里,然后按项目的pom.xml文件需要,复制到你的项目目录中。 

    1.查找Jar包在Maven官网的路径

       http://www.mavenregistry.com/  ,太实用了。 不然在http://repo1.maven.org/maven2/  里慢慢找还真麻烦。

    2.调用Maven的ant task 管理 JAR

     以下这段代码,缺一个字符都不行

 <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&nbsp;把jar下载到user.home/.m2/目录。并把所有jar定义成ant的fileset对象--maven.fileset。

     第3句把maven.fileset定义的,放在user.home/.m2/里的jar 拷贝到项目的lib目录。

3. 自建Maven私服或设置本地仓库

      相对来讲Maven2还很不成熟,比如很多项目的pom文件乱写的或缺少的,比如maven的官网速度实在太差,还经常抽筋死掉,比如有一些想要的版本官网上没有。

      Maven服务器其实就是普通的http服务器,和你的.m2/目录里一样的结构存放文件就可以了。

      3.1 设置服务器或本地仓库

    <repositories>
        <repository>
            <id>localdir</id>
            <name>本地Repository</name>
            <url>file://${basedir}/../../misc/repository</url>
        </repository>
        <repository>
            <id>springside</id>
            <name>传说中的私服</name>
            <url>http://www.springside.org.cn/maven2</url>
        </repository>
    </repositories>

3.2  添加官网没有的jar

    除jar文件外,还需要编写pom.xml文件,参考misc/repository/sample.pom

   使用springside根目录的build.xml 文件的checksum target, 为jar和pom生成校验文件。

Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators