1、建立本地仓库
我们有时需要用mavenBiuld项目时,POM中所定义的依赖包默认情况下会从官方的中央仓储中下载,项目成员都从中央仓储下载的话不是个快速并且令人放心的主意,并且可能我们访问不了中央仓储,或者这些依赖包里有些是我们自己开发的,官方仓储中根本没有。所以这时就用到了Nexus.配置的本地仓储,使用本地仓储,我们BIULD项目时,Maven会先从本地仓储(这里是127.0.0.1:8081)。
下载需要的依赖包和插件,速度会很快。如果本地中找不到,再到官方的中央仓储中去下载,这个只限第一次,下次再Biuld的时候,我们本地仓储中已经有了上次从中央仓储中下载的东西。安装步骤如下:
(1)、从网上下截Nexus,地址:http://nexus.sonatype.org/,将下载的压缩包文件解压到安装目录下。运行nexus安装目录\nexus-oss-webapp-1.6.0\bin\jsw\windows-x86-32下的Installnexus.bat,把Nexus安装成系统服务。
(2)、将服务启动,在浏览器中输入http://localhost:8081/nexus/进入Nexus。默认用户名:admin,密码:admin123
(3)、设置从代理Maven中央仓库下载索引。在Repositories中找到ApacheSnapshots、Codehaus Snapshots、MavenCentral这三项,分别点击这三项,在这三项的配置中设置Download RemoteIndexes为True。然后分别右击这三项选择ReIndex。这之后需要耐心的等待30分钟左右下载索引,视网络速度不一样。这个过程在界面上是没有任何反应的,不要以为后台没有下载。不放心的朋友可以用360的网络流量监控看一下,有一个java进程正在下载。
2、在开发人员机器上安装Maven2
(1)、从网络上下载Maven2的压缩包,解压到安装目录下,如我的安装目录为:E:\opensource\apache-maven-3.0.3。
(2)、设置M2_HOME环境变量,在PAHT环境变量中追加%M2_HOME%\bin 。
(3)、测试是否安装成功,在dos窗口中输入:mvn -v命令,能看到Maven的版本信息,测说明安装成功。
3、在Eclipse中安装m2eclipse插件
(1)、安装见官网的安装说明:http://m2eclipse.sonatype.org/installing-m2eclipse.html
(2)、我的Eclipse的WEB开发插件为WTP,按上面的说明能很顺利的安装,myeclipse插件上安装没试过。安装过程需要等待一段时间,请喝杯茶小休息一下。安装完后重启ECLIPSE,就可以使用了。
(3)、设置启动eclipse时禁止maven自动更新索引,优化eclipse启动速度。操作如下图:
(4)、设置maven用户配置文件的位置。一般安装完m2eclipse插件后,默认的用户配置文件为:C:\Users\Administrator\.m2。我一般是设置到我的maven安装目录下即:E:\opensource\apache-maven-3.0.3\conf\settings.xml。如下图:
(4)、在setting.xml中增加本地仓库,因为我们要用本地仓库来部署发布的项目,简化maven对各项目的依赖。配置如下:
这里配置了repository和pluginRepository,Maven在使用第三方构件和插件时是分开来配置的,所以如果我们也希望插件的下载也通过我们的本地仓库来下载,那么我们就需要配置pluginRepository。红色字体部分就是我们之前安装的Nexus的地址,这个地址可以是你们公司局域网内部的一台仓库服务器。
(5)、配置构件部署到本地仓库中。有些时候我们需要部署构件到Nexus的3rd party,比如我们在中央仓库找不到我们需要的构件,我们可以通过Nexus的UI来上传构件(该操作登录到nexus上后就能找到,比较简单不多说了)。关于releases和snapshots是用来部署我们自己的项目构件的,通过UI部署是可以,但是不是最高效的,我们可以通过配置Maven来自动部署我们的项目构件,这也是我们建立自己的仓库的一个非常重要的原因。
首先要在我们项目的pom.xml文件里面增加如下内容,让Maven知道当我要发布release版本或者snapshot版本是需要发布到哪个地址,内容如下:
<project>
</project>
再在setting.xml中配置nexus服务器部署用户的账号和密码,我们一般用deployment账号,密码可以用admin账号登录到nexus系统中后更改,配置内容如下:
<servers>
</servers>
到此为止, 我们就可以通过命令mvn deploy或者通过IDE的可视化界面点击deploy来发布我们项目到本地仓库了.通过这种方式我们可以很方便的进行模块间的依赖开发。