Docker 安装 Nexue

安装docker 自己想办法

docker pull sonatype/nexus3 

创建本地目录

mkdir-p/data/nexus/data

授权目录

chmod777-R/data/nexus/data

安装

docker run-d--name nexus3-p8081:8081--restart always-v/data/nexus/data:/nexus-datasonatype/nexus3

查看日志 docker logs -f nexus3  看到 Started Sonatype Nexus OSS 表示启动好了。

这个时候 需要查看管理员密码 这个是一个随机生成的文件 

可以在 cat /data/nexus/data/admin.password 查看 切记不可以修改!!!

应该是一长串数据,登录 http://ip:8081  admin 密码就是刚才看到的。

然后会让你修改当前admin的密码,修改后 admin.password  这个文件就消失了。

二、配置nexus

登录nexus管理平台后(注意必须admin登录才行,不然只能浏览模式),可以看到如下界面:


1、创建Blob stores

在创建repository之前,还需要先指定文件存储目录,便于统一管理。就需要创建Blob stores

创建好后可以看到blob stores有两个,一个是系统默认的,一个是刚创建的。如果不想自己创建,使用系统默认的文件存储目录(在sonatype-work/nexus3/blobs)也是可以的。到时候创建repository时,存储目录选择default就可以了。


2、nexus仓库

如图所示,代理仓库负责代理远程中央仓库,托管仓库负责本地资源,组资源库 = 代理资源库 + 托管资源库。


3、创建proxy repository代理仓库

选择maven2(proxy),代理仓库

设置代理仓库


其他的可以采用默认,以后需要修改的可以再修改。


4.创建hosted repository仓库


上图的Hosted设置选项,选项中有三个值:

**Allow redeploy**:允许同一个版本号下重复提交代码, nexus以时间区分

**Disable redeploy**:不允许同一个版本号下重复提交代码

**Read-Only**:不允许提交任何版本

原生的maven-releases库是Disable redeploy设置, maven-snapshots是Allow redeploy。


5、创建group repository组仓库

 将hosted repositories宿主仓库的顺序放在proxy repositories代理仓库之前,因为一个group仓库组中可以包括宿主仓库和代理仓库。而整个group repository是作为一个public repository给用户使用的。

所以当查找jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar包,而不是先从宿主仓库(本地仓库)去查找jar包。


三、设置maven

Maven下的setting.xml文件和项目中的pom.xml文件的关系是:settting.xml文件是全局设置,而pom.xml文件是局部设置。pom.xml文件对于项目来说,是优先使用的。而pom.xml文件中如果没有配置镜像地址的话,就按照settting.xml中定义的地址去查找。


1、修改maven配置文件setting.xml

如上图方式获取组仓库smart_group的仓库地址,修改setting.xml文件如下:

<!--nexus服务器,id为组仓库name--><servers><server><id>smart_group</id><username>admin</username><password>admin123</password></server></servers>

<!--仓库组的url地址,id和name可以写组仓库name,mirrorOf的值设置为central--><mirrors><mirror><id>smart_group</id><name>smart_group</name><url>http://******:8081/repository/smart_group/</url><mirrorOf>central</mirrorOf></mirror></mirrors>

修改后可以重新编译项目,必须添加参数-U,(-U,--update-snapshots,强制更新releases、snapshots类型的插件或依赖库,否则maven一天只会更新一次snapshot依赖)。代理仓库会从远程中央仓库下载jar包

#mvn clean compile -U

这个时候可以看到代理仓库已经从中央仓库下载了项目编译需要的jar包。同样地,在组仓库中也能看到所有的jar包,包括代理仓库和宿主仓库的。


2、通过管理平台上传三方jar包

有些jar是第三方提供的,在中央仓库中是没有的,我们可以上传这些本地三方jar包到hosted repository宿主仓库中。

上传成功后,就可以看到hosted repository和group repository中已经有了刚上传的三方jar包

然后项目中通过编译打包就可以下载jar包到本地repository中了,记住maven   clean、compile、package首次执行时加参数-U。


3、通过命令上传三方jar包

在setting.xml配置文件中添加hosted repository server

<!--id自定义,但是在使用命令上传的时候会用到--><server><id>smart_hosted</id><username>admin</username><password>admin123</password></server>

使用如下命令上传jar包:

mvn deploy:deploy-file-DgroupId=com.alan6.land -DartifactId=land-user -Dversion=0.0.1-Dpackaging=jar -Dfile=d:\land-service-user.jar -Durl=http://ip:8081/repository/smart_group/ -DrepositoryId=smart_group

命令解释:

-DgroupId=com.alan6.land                 自定义

-DartifactId=land-user                   自定义

-Dversion=0.0.1                      自定义,三个自定义,构成pom.xml文件中的标识

-Dpackaging=jar                    传的类型是jar类型

-Dfile=D:\jar\land-user-0.0.1.jar              jar包的本地磁盘位置

-Durl=http://ip:8081/repository/smart_hosted/                    hosted资源库的地址

-DrepositoryId=smart_hosted               需要和setting.xml文件中配置的ID一致

上传成功后,hosted repository中已经可以看到了


四、deploy部署jar包到私服


1、release和snapshots jar包区别

SNAPSHOT版本代表不稳定(快照版本),还在处于开发阶段,随时都会有变化。当上传同样的版本号jar包的时候,SNAPSHOT会在版本号的后面自动追加一串新的数字,即日志标签,nexus会根据日志标签区分出不同的版本,在maven引用时,如果使用的是snapshot版本,重新导入maven的时候,会去私库拉取最新上传的代码。

RELEASE则代表稳定的版本(发布版本),一般上线后都会改用RELEASE版本。也就是说1.0,2.0这样的版本只能有一个,也就是说当前版本号下,不可能出现不同的jar。


2、创建snapshot仓库

可以在nexus上添加一个snapshot仓库,专门用于存放snapshot版本的jar包。snapshot仓库也是hosted类型的,创建方式和hosted repository类型。创建好后,加入到组仓库里面就可以了。


3、项目pom.xml文件配置

可以在项目的pom文件中设置具体的relaeses库和snapshots库。如果当前项目的版本号的后缀名中带着-SNAPSHOT,类似<version>***-SNAPSHOT</version>,就会将项目jar包提交到snapshots库中,没有带-SNAPSHOT的话会提交releases库中。

在pom.xml文件中配置 distributionManagement 节点如下,在项目中执行deploy命令后,jar包将会被上传到nexus中。

<distributionManagement><repository><id>nexus-releases</id><!--release版本仓库--><name>Nexus Release Repository</name><url>http://ip:8081/repository/smart_hosted/</url></repository><snapshotRepository><id>nexus-snapshots</id><!--snapshot版本仓库--><name>Nexus Snapshot Repository</name><url>http://ip:8081/repository/smart_snapshots/</url></snapshotRepository></distributionManagement>

默认地,maven编译打包不会下载SNAPSHOT版本的jar包,所以还需要在pom.xml文件中配置支持下载snapshot版本jar包。

<repositories><repository><id>smart_group</id><url>http://ip:8081/repository/smart_group/</url><snapshots><enabled>true</enabled></snapshots></repository></repositories>

至此,nexus搭建完毕,支持本地部署依赖jar包

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • 前言 项目开发时,一般采用Maven来进行项目构建,管理,jar包下载,项目组开发人员开发时,只要在项目的pom....
    菠_512b阅读 4,994评论 0 1
  • Docker Compose 部署 Nexus 什么是 Nexus Nexus 是一个强大的 Maven 仓库管理...
    忞触动心灵阅读 831评论 0 0
  • 想了解Linux安装Nexus3可以看官方文档,这里说一下docker的方式如何安装配置。 安装Nexus 搜索n...
    AbelEthan阅读 568评论 0 1
  • 生活是属于每个人自己的感受,不属于任何别人的看法。—— 余华《活着》 一. 概述 在学习使用一个工具之前,我们需要...
    惜鸟阅读 2,502评论 0 6
  • 特别说明: 本人平时混迹于 B 站,不咋回复这里的评论,有问题可以到 B 站视频评论区留言找我视频地址: http...
    撸帝阅读 901评论 0 6