第一部分
第一步: 下载nexus软件包
wget https://download.sonatype.com/nexus/professional-bundle/nexus-professional-2.11.4-01-bundle.tar.gz
官网:https://help.sonatype.com/repomanager2/download/download-archives---repository-manager-2
第二步:解压下载的tar.gz包
tar xf nexus-professional-2.11.4-01-bundle.tar.gz
第三步:编辑conf/nexus.properties,修改nexus对外端口
第四步:编辑nexus文件,修改NEXUS_HOME为自己的安装地址,修改运行使用用户名称。
第五步:启动nexus
/opt/nexus-2.11.4-01/bin/nexus start
第六步:页面访问
访问网站:nexus.rabbit.com/nexus,初始用户名密码:admin/admin123、deployment/deployment123
登录后,点击左侧Repositories,界面如上图所示。
右侧的列表中,可以看到nexus预设的几个仓库。
第一个public Repositories,类型为group,这个简单理解为仓库的集合,下面的仓库就是可以加入到这个集合的元素。
对外可以只提供一个单独的url,如上图显示为:http://192.168.2.141:8081/nexus/content/groups/public/
大部分的终端用户,只需要配置上面这一个单独的聚合后的url,而不用单独配置多个仓库。用户也不需要知道某个jar包具体来源于maven *仓库,或者是Apache Snapshots,或者是我们自己添加的其他仓库。
这样的好处在于:如果我们要新增某个仓库(如开源中国、阿里云),客户端不需要做任何更改,只需要在nexus上将要新增的仓库加入到对外提供服务的仓库 group中就可以。
第二个3rd party,与倒数第一个和第二个仓库,Releases和Snapshots一样,类型为hosted,意思是由nexus本机管理的仓库。该仓库用于商业化的,第三方提供的非开源的依赖仓库,如oracle jdbc driver。
倒数第二个Releases,用于存放开发团队内部用的正式版的依赖。
倒数第一个Snapshots,用于存放开发团队内部日常构建的频率更新较快的依赖包。
Apache Snapshots和Central类型都是proxy,意思是远端仓库的代理。前者包含了Apache Software Foundation 发布的快照版本(这么翻译不知道对不对),后者为Maven*仓库,我们平时maven默认就是连接该仓库。
Central M1 Shadow类型为virtual,按官方文档的意思是,只是已有仓库的一个不同呈现方式的映射。有需要可以参考官方手册6.2.3节。
第二部分
第一步:仓库配置
Central 的 Download Remote Indexes改为True。而Remote Storage Location是maven*仓库的地址,可以改为阿里的镜像:http://maven.aliyun.com/nexus/content/groups/public/,本人实际使用时有个别jar包下载有问题,这里推荐这个地址不要修改,而是再建一个proxy类型的仓库从阿里镜像下载
第二步:使用阿里镜像
新建Proxy Repository
第三步:
有一个类型为group的Public Repositories,它是仓库的集合,这里加入新建的阿里镜像仓库,并排在第一个
点击Configuration,可以看到当前添加到该集合的仓库列表及顺序(优先级高的在上面,可用鼠标拖拽),当我们新增了仓库,将会出现在右侧的available Repository,添加到左边即可。
如果有哪个仓库不想加入到该集合,也可以拖拽到右边来。
第四步:安装配置maven(源码安装3.3.9)
首先复制仓库集合的repository url,客户端配置需要用到。
打开conf/settings.xml,按照如下步骤修改:
<settings>
<localRepository>/opt/M2_REPO</localRepository>
<servers>
<server>
<id>releases</id>
<username>deployment</username>
<password><![CDATA[deployment123]]></password>
</server>
<server>
<id>snapshots</id>
<username>deployment</username>
<password><![CDATA[deployment123]]></password>
</server>
</servers>
<mirrors>
<mirror>
<id>yougou</id>
<mirrorOf>central-yougou</mirrorOf>
<url>http://nexus.rabbit.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>yougou</id>
<repositories>
<repository>
<id>central-yougou</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central-yougou</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<!--profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<environment.type>dev</environment.type>
</properties>
</profile-->
</profiles>
<activeProfiles>
<activeProfile>yougou</activeProfile>
</activeProfiles>
</settings>
至此maven仓库nexus搭建完毕