一、Nexus下载
下载地址:https://www.sonatype.com/products/repository-oss-download PS:此处链接访问后,会让你填一些信息才能让你访问到具体的下载页面。这里可以随意填写,不用嫌麻烦,填好后就会出现具体的下载页面,如图: 如果你实在不想填,可以直接访问:https://www.sonatype.com/thanks/repo-oss 这个地址就是填完后跳转的具体下载页面。 这里我选择的是OSS 3.X - Windows版本,下载后解压会得到如下结构的文件夹: 到此,下载部分就全部完成了。
二、运行Nexus
进入到nexus-3.38.1-01/bin目录下,打开cmd命令窗口,输入命令:
nexus.exe/run
然后安静等待启动完成,访问http://127.0.0.1:8081,即可看到如下界面: 到此,Nexus的启动步骤也完成了,非常简单。 PS:
- Nexus的默认端口为8081,可以在nexus-3.38.1-01/etc目录下的nexus-default.properties
文件中修改: 我因为Jenkins已经将8081端口占用了,所以将端口修改为了8082。 - 成功进入页面后点击Sign in进行登陆,账号为admin,密码提示会告诉你在磁盘的具体位置(sonatype-work\nexus3\admin.password),找到并复制即可登录成功。成功登录后会让你修改密码。修改后会做简单的配置,比如支不支持上传包到Nexus服务器等,这里选择支持即可,后面会使用到。
三、Nexus仓库介绍及阿里云配置
3.1 仓库介绍
点击菜单”Browse“,可以看到当前的仓库: 不同Type代表的含义:
- hosted :宿主仓库,这个仓库,是用来把公司内部的发布包部署到这个仓库里面来,然后公司内的其他人就可以从这个宿主仓库里去下载依赖使用
- proxy:代理仓库,这个仓库不是用来给公司内部的发布部署的,是代理了公司外部的各种仓库,例如java.net,codehaus,jboss等等,最重要就是它代理了公司外部的中央仓库,但是这里也可以修改nexus连接为阿里云镜像仓库,阿里云去连接中央仓库。
- group:仓库组,其实就是将各种宿主仓库、代理仓库全部组成一个虚拟的仓库组,然后我们的项目只要配置依赖一个仓库组,相当于就是可以自动连接仓库组对应的各种仓库。
- virtual:虚拟仓库
不同仓库的含义:
- maven-central:这是代理仓库,代理maven中央仓库
- maven-releases:该仓库是个宿主仓库,用于部署公司内部的release版本的发布包(类似于1.0.0,,release的意思就是你的工程已经经过了完善的测试,单元测试,集成测试,QA测试,上生产环境使用了)到这个仓库里面,供其他同事在生产环境依赖和使用
- maven-snapshots:该仓库是个宿主仓库,用于部署公司内部的snapshot版本的发布包到这个仓库里(如果你的某个工程还在开发过程中,测试还没结束,但是,此时公司里其他同事也在开发一些工程,需要依赖你的包进行开发和测试,联调,此时你的工程的版本就是类似1.0.0-SNAPSHOT这样的版本),供其他同事在开发和测试的时候使用
- maven-public:仓库组,上面所有release仓库都在这个仓库组内
3.2 阿里云配置
登录后,点击上面的设置按钮: 依次点击”Repositories“、”maven-central“ 在如图处配置阿里云中央仓库位置,当你私服中不存在该Jar的时候,它会从阿里云中央仓库下载,提高效率。 阿里云中央仓库地址:http://maven.aliyun.com/nexus/content/repositories/central/
配置完成后,划到最下面点击保存即配置成功。 至此,Nexus的搭建基本上就完成了,接下来就是本地Maven配置测试了。
四、Maven配置
4.1 settings.xml设置
找到并打开settings.xml文件,添加私服配置:
- 在servers中添加如下配置
<servers>
<server>
<id>local-release</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>local-snapshot</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
- 在mirrors中添加如下配置:
<mirror>
<id>maven-address</id>
<mirrorOf>*</mirrorOf>
<url>http://127.0.0.1:8082/repository/maven-public/</url>
</mirror>
4.2 pom.xml配置
在项目中的pom.xml中添加如下配置:
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://127.0.0.1:8082/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>local-snapshot</id>
<name>LOCAL-SNAPSHOT</name>
<url>http://127.0.0.1:8082/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>local-release</id>
<name>LOCAL-RELEASE</name>
<url>http://127.0.0.1:8082/repository/maven-releases/</url>
</repository>
</distributionManagement>
至此,Nexus的Maven相关配置就完成了。
五、测试
加好配置后,进入对应的项目下,执行 mvn deploy,最后会出现如图所示的日志(前提是你项目能正常install): 这里我们就可以看到我们的项目已经发布到了私服。具体位置和项目的groupId有关: 如我这里的groupId是org.example,version后缀带SNAPSHOT,代表快照。会存入我们配置的maven-public仓库下,如图: 至此Nexus私服的基本搭建及Maven配置就完成了,看完没看完都点个赞呗 ^ - ^
|