2008年12月8日星期一

构建公司的maven私服中心

1 在windows下搭建
1.1 下载apache-maven-2.0.9
配置环境变量,我是直接放在c盘下,变量及其值如下:
mvn_home C:\apache-maven-2.0.9
Path .;%mvn_home%\bin #添加的信息
打开命令窗口,键入:mvn -v,若出现版本信息,则配置成功。

1.2 下载安装nexus
到http://nexus.sonatype.org/downloads/下载nexus-1.1.1-bundle.zip,解压后会产生一个目录nexus-webapp-1.1.1sonatype-work。到该目录下的\bin\jsw\windows-x86-32里,双击InstallNexus.bat安装,把nexus添加到服务里去,每次系统启动后就启动nexus服务。
双击Nexus.bat运行该服务,要30秒的样子。

1.3 访问
http://localhost:8081/nexus/index.html
管理的用户:admin
默认密码:admin123
登陆后修改此信息。

1.4 配置nexus
选择Administrator下的Repositories,如图:


在3个中心代理库分别:右键->reindex,并把这3个库的属性“Download Remote Indexes”,设置为“True”。
说明:我们正在建的库就是代理上面设置的3个库,一般一个公司搭建一个这样的中心库即可,避免开发人员乱下载包,造成项目混乱。若在该“公司中心库”没找到的自动到远程库下载。

1.5 配置mvn
个人开发者的本地库是在$HOME/.m2/repository下,若你不做任何设置,maven会自动从远程库加载依赖的包,不会从“公司中心库”加载。为了速度也是为了开发上的管理,要求必须切只能从“公司中心库”加载依赖包到本地库。设置如下:
在.m2目录下添加文件settings.xml,内容如下(google不能贴xml,改下载文件):
https://sites.google.com/site/zhuxuezheng/fen-xiang-haha
注:把里面的所有的localhost改写为前面搭建“公司中心库”的服务ip(即按装nexus的机器)。

1.6 尝试
在你的机器上,某个目录下运行:
mvn archetype:create -DgroupId=org.xyz.app1 -DartifactId=simple -DpackageName=org.xyz.app1
是不是从服务器下载东西,注意看日志。

再到中心库的sonatype-work目录下,看看其sonatype-work\nexus\storage\central-m1下是否下载了很多。你的本地库的包就是从此来,由公司中心库代理下载。所有的程序员都从此下载包,公司内部速度当然有保障。

可再访问,选择Browse Repositories,挨个Repositorie点击看看,maven central会有很多。
http://localhost:8081/nexus/index.html


2 在ubuntu下搭建
2.1 安装maven2
若输入$ mvn -v 没有任何版本信息,则说明没有安装:
sudo apt-get install maven2
$ mvn -v 会有版本信息输出。

2.2 安装nexus
到http://nexus.sonatype.org/downloads/下载nexus-1.1.1-bundle.tar.gz。
详细的具体配置参看(《maven权威指南》),不一定会成功,若不成功请参考我在下面写得:
http://books.sonatype.com/maven-book/reference_zh/repository-manager.html

这里做简要叙述。
在某个目录下解压(我的是$HOME/tools/) $ tar xvzf nexus-1.0.0-beta-3-bundle.tgz,产生nexus-wepapp-1.1.1和sonatype-work目录。nexus-wepapp-1.1.1/bin/jsw/linux-x86-32/nexus start,启动nexus,但出错:
NO JSP Suport for /nexus, did not find org.apache.jasper.servlet.JspServlet以及io等等一堆错误。
反复尝试各种方法都不行,后来把nexus-1.0.0-beta-3-bundle.tgz复制到windows下,解开运行,完全可以。一时很费解,大半天就这样溜走。无意中发现我的windows上是jdk6,而ubuntu是自带的jdk5,于是就在ubuntu上再install一个jdk6,好开始:
$sudo apt-get install sun-java6-jdk
时间比较长等。
安装完毕,把系统默认的jdk5设置成jdk6,只需一个命令即可:
$sudo update-alternatives --config java
选则sun-java6,就是刚装的。

这时再运行nexus,好使了,都说nexus 10分钟就能搭好,我费了10小时,呵呵。

总算好了,赶快试试:
http://localhost:8081/nexus/

2.3 设置一下
不能老去安装目录下运行,如:/home/.../nexus start|stop,设置一个简单的方法。如:
$cd /usr/bin
$sudo ln -s /home/用户名/tools/nexus-webapp-1.1.1/bin/jsw/linux-x86-32/nexus nexus
这样做了个连接,以后不管在那个目录下就可以使用:
$nexus start|stop

后面的操作就和windows一样。

1 条评论:

Unknown 说...

很好很强大
楼主是不是在阿里?