2019-11-19更新
后面发现nexus能使用的仓库种类非常的多,不仅是maven,还有docker,npm等等,使用非常的方便
之前对容器技术还不是很了解,使用docker部署会更加的方便,快捷,我写了个简单地脚本,一看就懂,直接运行脚本访问ip:端口即可跳过下面的安装步骤
#!bin/bash
echo "============================================拉取镜像============================================"
docker pull sonatype/nexus3
echo "============================================运行镜像============================================"
docker run -id --privileged=true --name=nexus3 --restart=always -p 8081:8081 -v /usr/docker-data/nexus3/nexus-data:/nexus-data sonatype/nexus3:latest
echo ""========================================宿主机文件授权"========================================"
sudo chmod 777 /usr/docker-data/nexus3/nexus-data
echo "============================================重启镜像============================================"
docker restart nexus3
- 由于挂载到宿主机的文件夹没有创建文件的权限,所以运行后需要授权,然后重新运行,或者你运行前先建好文件直接赋权也行,但这样比较麻烦
- id 创建守护式容器
- privileged=true 授予root权限(挂载多级目录必须为true,否则容器访问宿主机权限不足)
- name=名字 给你的容器起个名字
- p 宿主机端口:容器端口映射
- v 宿主机目录:容器目录 目录挂载
如果使用docker可以直接跳过下面的安装步骤。
nuxus安装
首先确保你的系统安装了jdk,jdk的安装不在叙述,百度一大堆,使用docker可跳过此步骤
下载
官网:[官网](https://www.sonatype.com/download-oss-sonatype)
填入信息后点击下载,就填一个邮箱,和你是不是他的会员,他会给你发邮箱,如果想下载2.x版本往下翻
!!我下载时一直下载不了,然后我是**下的,云盘里面是3.17版本和2.14版本windows和linux都有
链接:https://pan.baidu.com/s/1E9xqJQkqohwqZHFKkGInCA
提取码:xawt
window下安装
1. 解压后会有两个文件夹3.x版本直接管理员权限进入命令行,进入bin目录下执行命令(我的:D:\nexus3\nexus-3.17.0-01-win64\nexus-3.17.0-01\bin),
建议将该目录配置到系统的path变量里面,方便使用
#下载服务
nexus /install
#启动服务
nexus /start
#以run方式启动,可以查看日志信息
nexus /run
2.x的版本只需要进入/bin/jws选择相应系统的文件夹即可,例如:D:\nexus3\nexus-2.14.13-01-bundle\nexus-2.14.13-01\bin\jsw\windows-x86-64
我的是windows64位,所有选择windows-x86-64
进入后发现很熟悉吧,只需要按顺序执行即可,注意:需要以管理员权限运行,右键以管理员权限运行
然后打开http://ip:8081/可以进去nexus欢迎界面,2.x版本打开http://ip:8081/nexus/,如果以start方式启动,服务启动需要一点时间,请耐心等待
然后点击sing in 登录,3.x默认账号为admin,密码在/sonatype-work/nexus文件夹下,有个password文件,里面保存的是密码,登陆后会让你设置密码,设置成功后该文件会被删除.
2.x版本默认账户为admin,密码为admin123
3.x搭建
登录成功后会进入主界面,界面的详解网上有很多,我这里演示怎样搭建maven仓库和上传
创建仓库
仓库的类型有很多种,maven的有三种
- hosted:私有仓库,存放自己的包
- proxy 代理远程的仓库,比如上面写得三个maven远程仓库。如果本地不存在某些jar文件时就会到这些代理站点去下载。
- group 组仓库,用来添加其他的仓库,可以理解为很多个仓库的集合
我们需要的是maven2(hosted)
点击创建后需要将它添加到public库中
点击保存
然后到Browse就可以看见自己刚刚创建的仓库
私服搭建也就成功了,接下来上传jar
点击Browse页面的upload选择刚刚建的仓库
上传成功后再Borwse中点击仓库即可看见刚刚上传的包
2.x搭建
2,x版本和3的大同小异
经过前三步会弹出4窗口,和3.x类似,不在重复
填入信息
上传后点击仓库下方窗口第一栏Browse Index
2.x版本默认是能引用的需要设置Central仓库的Download Remote Indexes为true
引用仓库
引用,这里使用gradle引用相比maven要简单,3.xh和2.x类似
复制地址,点击Browse页面的maven-public 栏的copy复制私服地址
注意gradle引用时需要加入credentials,博主之前看其他文章都没有这个,然后就一直引入失败,真的是坑爹!!!,maven引用网上有很多的配置,不在细说
Gradle引用
gradle引用,需要在项目的build.gradle目录中加如以下内容
repositories {
maven {
credentials {
username 'XXXX'
password 'XXXX!'
}
url "http://192.168.1.108:8081/repository/byb2.0/"
}
mavenCentral()
}
dependencies {
implementation 'com.byb:base:0.0.1'
}
maven引用
需要在maven的setting.xml的servers节点下添加下面的子节点
<server>
<id>bybnexus</id>
<username>xxx</username>
<password>xxx!</password>
</server>
id标识随便取,username,password为私服账号密码
在pom.xml中加入以下节点
<repositories>
<repository>
<id>bybnexus</id>
<name>maven-public</name>
<url>http://192.168.1.137:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
id:和上面取得id对应
name:maven仓库名字,用于标识那个仓库,可要可不要
url:仓库地址
release和snapshots:控制release版本和snapshots版本的下载权限,使用snapshots版可实现jar包自动更新
在右边的依赖包里面便可以看见私服的jar包
上传
直接使用脚本
mvn deploy:deploy-file -DgroupId=com.gmsj -DartifactId=test -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=target/demo-0.0.1-SNAPSHOT.jar -Durl=http://192.168.31.205:8081/repository/gmsj-snapshot/ -DrepositoryId=gmsjnexus
goto start
-DgroupId=com.gmsj 组id
-DartifactId=xxx 项目id
-Dversion=0.0.1 版本
-Dpackaging=jar 上传的文件类型是jar类型
-Dfile=G:\jar\jacob-1.18.jar jar包的位置
-Durl=http://localhost:8081/repository/myself_hosted/ nexus仓库地址
-DrepositoryId=gmsjnexus setting.xml文件中配置的ID
:start
我这里是上传到snapshot仓库