什么是nexus?
Nexus 是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
怎么使用nexus?
创建并编辑docker-compose模板文件
version: '3.1' services: nexus: restart: always image: sonatype/nexus3 container_name: nexus ports: - 8081:8081 volumes: - /usr/local/docker/nexus/data:/nexus-data
这里有个小坑 如果运行docker-compose up报错 我们需要赋予挂载目录的权限
chmod 777 /usr/local/docker/nexus/data
这里需要等待大概五分钟等服务完全启动起来
这个时候我们在浏览器输入http://ip:port/ 这里ip是你linux服务器ip port为你设置的端口
Nexus仓库简单介绍
意为第三方仓库,如:
- maven-central
- nuget.org-proxy
版本策略(Version Policy):
- Release: 正式版本
- Snapshot: 快照版本
- Mixed: 混合模式
布局策略(Layout Policy):
- Strict:严格
- Permissive:宽松
宿主仓库(Hosted Repository)
存储本地上传的组件和资源的,如:
- maven-releases
- maven-snapshots
- nuget-hosted
部署策略(Deployment Policy):
- Allow Redeploy:允许重新部署
- Disable Redeploy:禁止重新部署
- Read-Only:只读
仓库组(Repository Group)
通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包,如:
- maven-public
- nuget-group
在项目中使用Nexus私服
1.配置认证信息
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
这个时候我们就可以登陆了
登陆以后我们就可以看到目录结构了
Snapshots 与 Releases 的区别
- nexus-releases: 用于发布 Release 版本
- nexus-snapshots: 用于发布 Snapshot 版本(快照版)
Release 版本与 Snapshot 定义如下:
Release: 1.0.0/1.0.0-RELEASE
Snapshot: 1.0.0-SNAPSHOT
- 在项目
pom.xml
中设置的版本号添加SNAPSHOT
标识的都会发布为SNAPSHOT
版本,没有SNAPSHOT
标识的都会发布为RELEASE
版本。 SNAPSHOT
版本会自动加一个时间作为标识,如:1.0.0-SNAPSHOT
发布后为变成1.0.0-SNAPSHOT-20180522.123456-1.jar
配置自动化部署
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://127.0.0.1:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://127.0.0.1:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
注意:这里将里面的ip改成自己的ip
部署到仓库
在idea上输入命令:mvn deploy
最好在执行这条命令clear下
如果命令不行建议使用idea的maven命令界面里手动执行这两条命令
上传第三方架包的命令:
mvn deploy:deploy-file -DgroupId=easydbo -DartifactId=easydbo -Dversion=0.9.1 -Dpackaging=jar -Dfile=c:\easydbo-0.9.1.jar -Durl=http://10.3.135.166:8081/repository/maven-releases/ -DrepositoryId=nexus-releases
其中 DgroupId这个为上传上去的架包名 DartifactId=easydbo 任意设置 Dversion 架包版本号:这个自己也可以任意设置 Dfile:架包来源的路径 这里自己要更改目录到架包所在实际目录我这里放在C盘所以就给放在C盘下面 -Durl:10.3.135.166:8081这个要改成自己的ip地址