1.  建立Maven2的本地代码库服务器,也就是常说的“私服”
官方的maven repository服务器特别的慢,还记得上次海底电缆事故么?官方的服务器根本就无法访问,那段时间简直要抓狂。并且官方服务器类库版本通常不是最新,有时候想用最新版的还得自己动手。(下面会介绍如何自己动手做),所以建立一个自己的本地代码服务器对于整个团队就特别有意义。
Maven的服务器很简单,一个普通的http服务器就行,比如apache,装好apache以后。
将你本地代码库文件夹拷贝到apache安装目录下htpdocs/maven2windows用户是C:\Documents and Settings\jeffrey\.m2\repositorylinux下是 /home/Jeffrey/.m2/repository(注意.m2linux下是隐藏文件夹)
启动apache服务器,在浏览器中输入http://localhost/maven2/repository,应该可以查看到repository的文件目录
编辑项目pom,指定本地的代码库服务器
project中加入:
   
xml 代码
 
  1. <repositories>  
  2.   <repository>  
  3.     <id>mylibsid>  
  4.     <url>http://localhost/maven2/repositoryurl>  
  5.   repository>  
  6. repositories>  

<o:p></o:p>
可以加入多个repositorymvn会按照顺序检索,如果都没有找到,最后会去找官方的服务器
<o:p> </o:p>3. 添加新的类库到本地代码服务器中
maven官网有很多类库都找不到,只能自己动手,丰衣足食。
请先确认官网确实没有的情况下再自己做,毕竟还是挺麻烦的
可在以下两个网站查阅:http://mvnrepository.com/http://repo1.maven.org/maven2/
前面已经说明了maven代码库的文件目录组织方式,同一个jar对于每个版本都有一个独立的文件夹来存放,除了jar还要有该jar的描述文件.pom,以及他们的校验文件.sh1
.pom文件里定义了该jar的名称、版本以及该jar所依赖到的其他jar(这也就是为什么引入一个jar却带出一大堆的jar来)
最简单的pom如下:
<project> </project>
xml 代码
 
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <project>  
  3.     <modelVersion>4.0.0modelVersion>  
  4.     <groupId>net.jeffreygroupId>  
  5.     <artifactId>xxxartifactId>  
  6.     <version>1.0version>  
  7.     <dependencies>  
  8.     dependencies>  
  9. project>  
         jarpom生成校验文件
         可以通过一个ant任务来做:
xml 代码
 
  1.   
  2. <target name="checksum" description="Generate checksum file for jar and pom">  
  3.        <checksum algorithm="SHA" fileext=".sha1">  
  4.            <fileset dir="d:/javalib" id="id">   
  5.               <include name="**/*.pom" />  
  6.               <include name="**/*.jar" />  
  7.               <include name="**/*.xml" />  
  8.               <exclude name="**/*.sh1" />  
  9.            fileset>  
  10.        checksum>  
  11. target>  

<o:p></o:p>
把生成好的sh1文件和jarpom按照前面介绍的结构布局拷贝到apache的代码库中,当然你也可以直接拷到本地代码库中。
<o:p> </o:p>
<o:p>顺便抱怨一句,JE的博客编辑器非常难用,各种各样的bug不说,(比如我上面概览下面第一条怎么都加不上颜色),还特别不稳定,保存后经常丢失内容,所以只能先在word里面编辑,但拷过来又是一堆格式要改,特别是列表格式!
</o:p>