1.什么是sonatype Nexus
大家都知道manven中央仓库,在使用maven的时候,你的项目需要的构建需要先从本地仓库(安装maven的时候会自动仓健在C:\Users\Administrator\.m2\repository -windows7)去找,本地找不到,maven会自动从中央仓库去找并下载到本地仓库。Sonatype Nexus就是代替中央仓库的一个本地maven仓库服务器,Nexus其实就是一个搭建在本地一个仓库管理服务器。当你搭建好Nexus仓库服务器后,项目可以从中央仓库获取构建转到从Nexus上获取构建。
2.为什么用sonatype Nexus
至于Nexus的优点网上有很多,这里就不累述了,大体是如下几点:
1.加速构建(从Nexus下载构建是局域网之间的通讯);
2.节省宽带;
3.不依赖外网的中央仓库就可以轻松团队协作(如果你的工作环境不能上外网);
4.能够部署第三方构建(各种付费的构建在中央仓库是找不到,这里可以创建);
5.可以仓健本地内部构建;
6.安装使用简单;
3.安装Nexus
下载 地址:http://www.sonatype.org/nexus/go
下载完,解压缩后可以看到两个文件夹,一个是nexus-2.5.0,另一个是sonatype-work,我们只需要将nexus-2.5.0拷贝到需要安装的路径即可,比如在我的机器上,我copy到了D:\目录下,sonatype-work可以不拷贝。
很简单,这就安装完了。
nexus已经将各个平台的启动脚本都写好了,并分开目录放置,具体可以查看nexus-2.5.0\bin\jsw目录,我的机器是windows32位的,就可以进入到windows-x86-32目录下,点击console-nexus.bat即可启动,启动完成后,访问url:http://localhost:8081/nexus即可看到nexus的页面如果是其他平台,找到对应的目录启动脚本即可
4.配置Nexus
新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123。
点击左边Administration菜单下面的Repositories,找到右边仓库列表中的三个仓库Apache Snapshots,Codehaus Snapshots和Maven Central,然后再没有仓库的configuration下把Download Remote Indexes修改为true。如下图
然后在Apache Snapshots,Codehaus Snapshots和Maven Central这三个仓库上分别右键,选择Repari Index,这样Nexus就会去下载远程的索引文件。
这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse Index
在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如:maven, 那么查询结果如下:
这里只是简单介绍一下配置,具体问题可以google或者在官网上需求解答
5.如何链接Nexus
在本地maven仓库路径下C:\Users\Administrator\.m2(Windows7)下settings.xml文件中加入如下:
配置Nexus仓库管理器访问路径
<profiles>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
注意:这样配置后可能还是maven还是默认访问中央仓库,需要配置如下:
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<name>nexus mirror.</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
配置好后maven获取构建会自动从Nexus下获取构建
6.如何将自己的构建发布到Nexus
作为一个团队协同开发一个项目,可能分几个组去完成不同功能模块,每个组的项目是分开的,这样就需要把自己模块的构建快照实时发布到Nexus,其他组可以从Nexus 可以将你最新发布的快照实时同步到本地仓库
要想发布构建到Nexus下需要做如下配置
1.项目中的pom.xml文件配置下加入如下:
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
2.在maven本地仓库目录下的settings.xml文件下配置用户名密码
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
注意:pom.xml的文件id(releases snapshots) 要settings.xm中Id(releases snapshots)一致,发送发布会失败
3.发布打开mvn命令行,cd到需要发布项目路径下执行 mvn clean deploy 执行成功后会在Nexus下找到对应的快照