## :-: nexus使用介绍
* 一、应用场景
* 二、创建一个用户
* 三、创建一个maven仓库
* 四、respository介绍
* 五、提交jar到maven私服
* 1\. 配置私服仓库的账号
* 2\. 配置发布的私服仓库地址
* 3\. 批量提交jar包
* 4\. 提交某个jar
* 六、指定maven地址下载jar包到本地
## 一、应用场景
有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。总归主要是两点:
1. 自己maven私服更容易维护,公司开发从maven私服迁出jar到本地仓库更快
2. 有些公司未开放外网给开发人员
## 二、创建一个用户
点击Security>Users 创建一个用户,我这里测试创建的用户/密码是:zlt/zlt,因为后面提交本地项目jar到私服仓库会用到![](https://box.kancloud.cn/e308845e18faabbf8875f88a3568a660_2535x1096.png)
## 三、创建一个maven仓库
设置>Repository>Repositories>Create repository>maven2(hosted)创建maven项目![](https://box.kancloud.cn/c38c7050f0fd18f6c261278fb005fac6_2387x1170.png)
>[danger] 注意Deployment policy一定要设置成allow redeploy
> version pollcy 根据仓库类型选择 如果是snapshots 就选择snapshots 如果是最终发布版本 就选择releases
## 四、respository介绍
* **proxy**:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用;
* **Hosted**:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里;
* **Group**:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。
## 五、提交jar到maven私服
### 1\. 配置私服仓库的账号
设本地maven的settings.xml配置,在servers标签里添加用户密码支持
~~~
<server>
<id>hj-releases</id>
<username>admin</username>
<password>****</password>
</server>
<server>
<id>hj-snapshots</id>
<username>admin</username>
<password>*****</password>
</server>
~~~
### 2\. 配置发布的私服仓库地址
在项目的pom.xml中添加远程发布的私服仓库地址
~~~
<distributionManagement>
<repository>
<id>hj-releases</id>
<name>hj-releases</name>
<url>http://39.96.84.9:8081/repository/hj-releases/</url>
</repository>
<snapshotRepository>
<id>hj-snapshots</id>
<name>hj-snapshots</name>
<url>http://39.96.84.9:8081/repository/hj-snapshots/</url>
</snapshotRepository>
</distributionManagement>
~~~
>[danger] ### **必需保证server的id与构建项目的pom.xml中的repository的id一致**\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
### 3\. 批量提交jar包
~~~
mvn clean deploy
~~~
>[warning] maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。**如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,会覆盖老的快照版本,而在使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载**。
### 4\. 提交某个jar
命令格式如下:
~~~
mvn deploy:deploy-file -DgroupId=groupId -DartifactId=artifactId -Dversion=version -Dfile=本地jar包路径 -DrepositoryId=releases/snapshots -Durl=仓库地址
~~~
* 提交到releases的例子
~~~
mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0 -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-releases/ -DrepositoryId=releases
~~~
* 提交到snapshots的例子
~~~
mvn deploy:deploy-file -DgroupId=com.zlt -DartifactId=zlt-uaa -Dversion=1.1.0-SNAPSHOT -Dpackaging=jar -Dfile=zlt-uaa.jar -Durl=http://192.168.28.138:8081/repository/maven-snapshots/ -DrepositoryId=snapshots
~~~
## 六、指定maven地址下载jar包到本地
在项目的pom.xml中添加上远程仓库地址
~~~
<repositories>
<repository>
<id>public</id>
<name>public</name>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>http://39.96.84.9:8081/repository/maven-public/</url>
</repository>
</repositories>
~~~
- 项目介绍
- 项目声明
- 项目简介
- 架构设计
- 项目亮点功能介绍
- 技术栈介绍
- 核心功能
- 运行环境
- 项目更新日志
- 文档更新日志
- F&Q
- 部署教程
- 环境准备
- JDK安装
- JDK1.8,17共存
- maven
- 分布式缓存Redis
- 单机版
- 集群
- 注册&配置中心alibaba/nacos
- 介绍
- Nacos安装
- Nacos配置中心
- Nacos注册发现
- Nacos生产部署方案
- 服务监控-BootAdmin
- 基本介绍
- 如何使用
- 整合Admin-Ui
- 客户端配置
- 链路追踪
- 基本介绍
- SkyWalking-1
- Skywalking-1
- 消息队列
- Kafka
- docker安装kafka
- Linux集群
- Maven私服
- nexus安装部署
- nexus使用介绍
- 全文搜索elasticsearch
- windows集群搭建
- docker安装es
- ElasticHD
- linux集群部署
- 统一日志解决方案
- 日志解决方案设计
- 介绍与相关资料
- ELK安装部署
- elasticsearch 7.5
- logstash-7.5
- kibana-7.5
- filebeat
- 服务监控-Prometheus
- Prometheus安装配置
- Prometheus介绍
- grafana
- 持续集成部署CICD
- 自动化部署Jenkins
- 安装部署win
- 打包发布远程执行
- 安装部署linux
- jenkins+gitlab+docker容器化工程自动化部署
- Git
- CICD说明
- 阿里云效
- CentOS_MYSQL安装
- docker
- 安装
- Docker安装Nginx
- Docker部署启动springboot
- dockerCompose
- harbor
- Docker私有镜像仓库
- Portainer
- Docker远程连接设置
- 打包工程
- 必要启动模块
- 核心模块
- 登录认证
- 缓存功能
- 日志模块
- 分布式锁
- 消息队列
- 异常处理
- 系统接口
- 参数验证
- es检索
- 数据导出
- 系统设计
- 系统总体架构
- 扩展模块(可选)
- 限流熔断alibaba/sentinel
- 使用Sentinel实现gateway网关及服务接口限流
- Sentinel使用Nacos存储规则及同步
- 服务调用Feign
- Feign基本介绍
- 如何使用
- 负载均衡
- 请求超时
- 请求拦截器
- 分布式任务调度
- XXL-JOB
- 分布式事务
- TX-LCN
- Seata
- Seata原理解析
- 数据库分库分表
- swagger文档
- 分布式ID生成器解决方案
- 服务网关CloudGateway
- 基本介绍
- 使用网关
- 路由配置
- 全局过滤器
- 服务认证授权架构设计
- 认证服务流程
- 授权服务流程
- 系统幂等性设计与实践
- 分布式日志链路跟踪
- 实时搜索系统设计
- 应用性能
- 压力测试工具
- Apache JMeter介绍和安装
- ApacheJMeter使用
- JVM
- JVM性能调优
- 常见JVM内存错误及解决方案
- JVM 分析工具详解
- Spring Cloud性能调优
- Linux运维
- Linux 常用命令
- Linux开启端口