一、什么是Nexus
Nexus是一个强大的Maven仓库管理器,极大简化了内部仓库的维护和外部仓库的访问。
1、对底层代码进行了大规模重构,提升性能,增加可扩展性以及改善用户体验。
2、升级界面,极大的简化了用户界面的操作和管理。
3、提供新的安装包,让部署更加简单
4、增加对Docker、NeGet、npm、Bower的支持。
5、提供新的管理接口,以及增强对自动任务的管理
二、部署Nexus
官方教程文档:https://hub.docker.com/r/sonatype/nexus3
部署命令如下:
#拉取镜像 docker pull sonatype/nexus3
#cd local目录下,并创建docker,在docker目录下创建nexus
cd /usr/local/
mkdir docker
mkdir nexus
#编辑docker-compose.yml
vi docker-compose.yml
#启动
docker-compose up -d
docker-compose.yml配置文件内容如下:
version: '3.1' services: nexus: restart: always image: sonatype/nexus3 container_name: nexus ports: - 8082:8081 volumes: - nexus-data:/nexus-data volumes: nexus-data:
三、访问Nexus
四、Nexus配置和使用
mvn仓库配置:
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Releases Repository</name> <url>http://192.168.121.131:8082/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.168.121.131:8082/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement> <repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.121.131:8082/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Plugin Repository</name> <url>http://192.168.121.131:8082/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
maven setting认证配置:(只需要配置账号密码,请求地址是在pom里面)
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
上传命令:
mvn deploy -Dmaven.test.skip=true
五、遇到问题
1、提示没有文件夹权限
2、账号密码错误,不是默认admin123
(1)通过docker ps命令获取容器id,
(2)docker exec -it 容器ID /bin/bash 命令进入容器
(3)vi /nexus-data/admin.password 查看密码(就是密码不是加密串)
3、打包上传mvn时,出现异常
分析问题:
1、防火墙导致访问失败
通过telnet,可以排除
2、认证出现异常
查看账号的ID是否跟仓库的ID一致
解决方式:maven setting中的账号ID和pom文件中的ID不一致导致的,修改后成功运行
MAVEN-central 中央仓库(没有会去官网仓库获取包)
MAVEN-Public 公共仓库 组(包含其他仓库)
MAVEN-RELEASES 发行
MAVEN-SNAPSHOTS 快照(开发版)
面向修改关闭,面向扩展开发
语义化版本 V1.0.0(架构、功能、bug数)外部版本号