1. 建立Maven2的本地代码库服务器,也就是常说的“私服”
官方的maven repository服务器特别的慢,还记得上次海底电缆事故么?官方的服务器根本就无法访问,那段时间简直要抓狂。并且官方服务器类库版本通常不是最新,有时候想用最新版的还得自己动手。(下面会介绍如何自己动手做),所以建立一个自己的本地代码服务器对于整个团队就特别有意义。
Maven的服务器很简单,一个普通的http服务器就行,比如apache,装好apache以后。
将你本地代码库文件夹拷贝到apache安装目录下htpdocs/maven2,windows用户是C:\Documents and Settings\jeffrey\.m2\repository,linux下是 /home/Jeffrey/.m2/repository(注意.m2在linux下是隐藏文件夹)
编辑项目pom,指定本地的代码库服务器
在project中加入:
xml 代码
- <repositories>
- <repository>
- <id>mylibsid>
- <url>http://localhost/maven2/repositoryurl>
- repository>
- repositories>
<o:p></o:p>
可以加入多个repository,mvn会按照顺序检索,如果都没有找到,最后会去找官方的服务器
<o:p> </o:p>3. 添加新的类库到本地代码服务器中
在maven官网有很多类库都找不到,只能自己动手,丰衣足食。
请先确认官网确实没有的情况下再自己做,毕竟还是挺麻烦的
前面已经说明了maven代码库的文件目录组织方式,同一个jar对于每个版本都有一个独立的文件夹来存放,除了jar还要有该jar的描述文件.pom,以及他们的校验文件.sh1
.pom文件里定义了该jar的名称、版本以及该jar所依赖到的其他jar(这也就是为什么引入一个jar却带出一大堆的jar来)
最简单的pom如下:
<project> </project>
xml 代码
- xml version="1.0" encoding="UTF-8"?>
- <project>
- <modelVersion>4.0.0modelVersion>
- <groupId>net.jeffreygroupId>
- <artifactId>xxxartifactId>
- <version>1.0version>
- <dependencies>
- dependencies>
- project>
为jar和pom生成校验文件
可以通过一个ant任务来做:
xml 代码
-
- <target name="checksum" description="Generate checksum file for jar and pom">
- <checksum algorithm="SHA" fileext=".sha1">
- <fileset dir="d:/javalib" id="id">
- <include name="**/*.pom" />
- <include name="**/*.jar" />
- <include name="**/*.xml" />
- <exclude name="**/*.sh1" />
- fileset>
- checksum>
- target>
<o:p></o:p>
把生成好的sh1文件和jar、pom按照前面介绍的结构布局拷贝到apache的代码库中,当然你也可以直接拷到本地代码库中。
<o:p> </o:p>
<o:p>顺便抱怨一句,JE的博客编辑器非常难用,各种各样的bug不说,(比如我上面概览下面第一条怎么都加不上颜色),还特别不稳定,保存后经常丢失内容,所以只能先在word里面编辑,但拷过来又是一堆格式要改,特别是列表格式!
</o:p>