centos环境docker安装nexus3搭建maven私有仓库

news2024/12/23 20:51:54
  1. 拉取最新nexus3镜像

docker pull nexus3
  1. 创建宿主机上的映射文件目录,并授权

[root@1-0002 ~]# mkdir -p /mnt/lckj/nexus/data
[root@1-0002 ~]# chmod -R +777 /mnt/lckj/nexus/data
  1. 运行redis,生成相应容器

-d 后台启动

[root@1-0002 ~]# docker run -d --name nexus3 -p 8500:8081 --restart always -v /mnt/lckj/nexus/data:/nexus-data sonatype/nexus3
  1. 查看日志,验证是否启动成功

[root@1-0002 ~]# docker logs -f nexus3
2023-02-02 01:41:24,674+0000 INFO  [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass=
2023-02-02 01:41:24,690+0000 INFO  [jetty-main-1] *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for APIs...
2023-02-02 01:41:24,828+0000 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate: org.sonatype.nexus.siesta.internal.resteasy.SisuResteasyProviderFactory@45aca9b
2023-02-02 01:41:24,864+0000 INFO  [jetty-main-1] *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
2023-02-02 01:41:25,889+0000 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2023-02-02 01:41:25,896+0000 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2023-02-02 01:41:25,925+0000 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@12197923{Sonatype Nexus,/,file:///opt/sonatype/nexus/public/,AVAILABLE}
2023-02-02 01:41:25,967+0000 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@cd6155e{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
2023-02-02 01:41:25,968+0000 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @41236ms
2023-02-02 01:41:25,968+0000 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - 
-------------------------------------------------

Started Sonatype Nexus OSS 3.37.3-02

-------------------------------------------------
  1. nexus访问

访问http://ip:8500/,点击右上角sign in进行登录操作,默认用户名密码admin/admin123,如果不对,需要到如下路径中查找

[root@1-0002 mnt]# cat lckj/nexus/data/admin.password 
34b430c2-c0e7-4705-a4d1-87914a92e5ec
[root@1-0002 mnt]# 

第一次登录时,会提示修改密码,并对访问进行设置,设置为所有人访问都需要验证。

  1. 默认的nexus配置说明

默认仓库说明

maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

nexus仓库类型说明

hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group:仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
  1. 创建Blob Stores

  1. 创建proxy repository代理仓库

create repository-->select recipe【maven2 (proxy)】-->create repository:maven2(proxy),设置内容如下

name:custom_proxy
remote storage:https://maven.aliyun.com/repository/public/
Blob store:custom

create repository保存即可。

  1. 创建hosted repository仓库

create repository-->select recipe【maven2 (hosted)】-->create repository:maven2(hosted),设置内容如下

name:custom_hosted
version policy:Mixed
Blob store:custom
Deployment policy:Allow redeploy

create repository保存即可。

  1. 创建group repository仓库

create repository-->select recipe【maven2 (group)】-->create repository:maven2(group),设置内容如下

name:custom_group
Blob store:custom
Member repositories中Members按照从上至下的顺序为custom_hosted,custom_proxy,maven-central

create repository保存即可。

  1. maven配置

复制组仓库之地,修改setting.xml配置文件

<!--nexus服务器,id为组仓库name-->
  <servers>  
    <server>  
        <id>custom_group</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>   
  </servers>  
  <!--仓库组的url地址,id和name可以写组仓库name,mirrorOf的值设置为central-->  
  <mirrors>     
    <mirror>  
        <id>custom_group</id>  
        <name>custom_group</name>  
        <url>http://ip:8500/repository/custom_group/</url>  
        <mirrorOf>central</mirrorOf>  
    </mirror>     
  </mirrors>
  1. deploy部署jar包到私服

release和snapshots jar包区别

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

create repository-->select recipe【maven2 (hosted)】-->create repository:maven2(hosted),设置内容如下

name:custom_snapshots
version policy:Snapshot
Blob store:custom
Deployment policy:Allow redeploy

create repository保存即可。

修改custom_group配置,增加custom_snapshots

Member repositories中Members按照从上至下的顺序为custom_hosted,custom_snapshots,custom_proxy,maven-central

create repository-->select recipe【maven2 (hosted)】-->create repository:maven2(hosted),设置内容如下

name:custom_releases
version policy:releases
Blob store:custom
Deployment policy:Allow redeploy

create repository保存即可。

修改custom_group配置,增加custom_releases

Member repositories中Members按照从上至下的顺序为custom_hosted,custom_snapshots,custom_releases,custom_proxy,maven-central
  1. 项目pom.xml配置

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

setting.xml中配置

<server>  
    <id>custom_snapshots</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>
<server>  
    <id>custom_releases</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>

pom.xml中配置

    <repositories>
        <repository>
            <id>custom_group</id>
            <name>custom_group</name>
            <url>http://ip:8500/repository/custom_group/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>custom_group</id>
            <name>custom_group</name>
            <url>http://ip:8500/repository/custom_group/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>
<!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件jar等部署到远程仓库。 -->
    <distributionManagement>
        <repository><!--部署项目产生的构件到远程仓库需要的信息 -->
            <id>custom_releases</id><!-- 此处id和settings.xml的id保持一致 -->
            <name>custom_releases</name>
            <url>http://ip:8500/repository/custom_releases/</url>
        </repository>
        <snapshotRepository><!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
            <id>custom_snapshots</id><!-- 此处id和settings.xml的id保持一致 -->
            <name>custom_snapshots</name>
            <url>http://ip:8500/repository/custom_snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

项目下执行如下命令,即可在custom_snapshots仓库中查看到当前上传的jar文件

mvn clean deploy -Dmaven.test.skip=true
  1. 问题总结

nexus/data目录一定要授权,最开始只是授权nexus,data没有授权,导致启动报错。

idea配置maven时重写了配置文件,但是默认还是查找maven中配置的setting.xml文件,导致调用的仓库地址不正确,后来同步maven中的setting.xml配置文件。

本文章参考自https://blog.csdn.net/BThinker/article/details/123688143

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go并发读取string的Panic问题

上问题&#xff0c;先看下panic的函数栈信息&#xff0c;说现实strings.Count()发生了panic&#xff0c;来看下函数 第一个参数是字符串s&#xff0c;再结合函数栈信息的十六进制&#xff0c;0x0、0x9表示字符串s的地址和长度 这里来看一下string的底层数据结构&#xff1a;…

Spring Security OAuth2.0认证授权

目录 1.基本概念 1.1什么是认证 1.2什么是会话&#xff1f; 1.2什么是授权 1.3授权的数据模型 1.4.1基于角色的访问控制 1.4.2基于资源的访问控制 2.基于Session的认证方式 2.1认证流程 分布式系统认证方案 什么事分布式系统&#xff1f; 分布式认证需求 分布式认证…

行业安全解决方案 | 能源行业如何在新时期建设新安全?

伴随5G、人工智能、大数据、云计算等新技术的蓬勃发展&#xff0c;数智化成为传统电力能源转型发展的重要方向。与此同时&#xff0c;伴随着能源行业数字技术与电力技术、业务生产的愈发深度的融合&#xff0c;新时期的能源行业网络安全形势有了新变化&#xff0c;网络边界威胁…

DPDK实现的用户态协议栈(UDP)

DPDK实现的用户态协议栈背景NIC与DPDK的比较环境配置Windowe下配置静态IP表代码实现总结背景 DPDK接管NIC之后&#xff0c;接收到的数据都是原始数据&#xff0c;要实现一个协议栈就必须解析协议包和打包协议包&#xff0c;DPDK提供了丰富的API可以使用。 以UDP协议为例&#…

redis分布式集群

文章目录一、redis持久化1.1.RDB持久化1.1.1.执行时机1.1.2.RDB原理1.1.3.小结1.2.AOF持久化1.2.1.AOF原理1.2.2.AOF配置1.2.3.AOF文件重写1.2.4.小结1.3.RDB与AOF对比二、Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试2.6.主从数据同步原理2.…

MMLAB学习笔记-DAY1

一、机器学习 1.机器学习的典型范式 监督学习&#xff1a;数据是由人工标注的&#xff0c;数据之间存在某种映射关系&#xff0c;目的是让机器学习到数据和标签之间的关系无监督学习&#xff1a;数据是没有标签的&#xff0c;通过对数据分析&#xff0c;运用聚类等方法探索出…

六、循环语句

一、while循环 1.语法 while 条件:条件成⽴重复执⾏的代码1条件成⽴重复执⾏的代码2.....2.应用 #偶数累加 i 1 resualt 0while i<100:if i % 2 0:resualt ii1print(resualt)3.break和continue 说明&#xff1a; 举例&#xff1a;⼀共吃5个苹果&#xff0c;吃完第⼀个&…

如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品&#xff0c;帮助用户快速完成数据集成、开发、运维、治理、资产、安全等全套数据中台建设&#xff0c;降低工作成本和数据维护成本、挖掘数据价值、为企业决策提供数据支撑。 火山引擎 DataLeap 的 Data…

Spring Boot + WebSocket 实时监控异常

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/…

【笔记】容器基础-隔离与限制

Docker 项目的核心原理&#xff1a;为待创建的用户进程 1.启用 Linux Namespace 配置&#xff1a;修改进程视图 2.设置指定的 Cgroups 参数&#xff1a;为进程设置资源限制 3.切换进程的根目录&#xff08;Change Root&#xff09;&#xff1a; 容器的隔离与限制 1.启用 Linux…

MySQL性能优化四 MySQL索引优化实战一

一 查询案例 示例表 CREATE TABLE employees (id int(11) NOT NULL AUTO_INCREMENT,name varchar(24) NOT NULL DEFAULT COMMENT 姓名,age int(11) NOT NULL DEFAULT 0 COMMENT 年龄,position varchar(20) NOT NULL DEFAULT COMMENT 职位,hire_time timestamp NOT NULL DEF…

王凤英,能治好何小鹏的技术“自恋”吗?

1月30日&#xff0c;小鹏官宣一手打造长城汽车(601633)SUV战略转型的前二号人物——王凤英&#xff0c;加盟小鹏出任CEO一职。 虽然这则消息已风传多日&#xff0c;但正式公布的一刻还是在汽车圈内炸开了锅&#xff0c;主要原因有两点&#xff1a;一是王凤英刚刚加入小鹏就被委…

2-1JVM内存分析

一、java类的生命周期 1.加载(把class文件的数据加载到jvm内存的元空间) 2.连接验证 验证语法是否正确准备 给静态变量做内存分配和默认值分配识别 解析常量池 3.初始化静态变量赋初始值静态代码块执行 4.使用(被jvm使用) 5.卸载(如果在程序中没有再使用到这个类,这个类会被从…

跳槽前恶补面试题,成功上岸华为,拿到33k的测开offer

不知不觉间&#xff0c;时间过得真快啊。作为一名程序员&#xff0c;应该都清楚每年的3、4月份和9、10月份都是跳槽的黄金季&#xff0c;各大企业在这段时间会大量招聘人才。在这段时间里&#xff0c;有人欢喜有人悲。想必各位在跳槽前都会做好充足的准备&#xff0c;同样做足了…

还是你厉害啊,用 Python 下载高清视频真速度

今天我们来进行 Python 爬虫实战&#xff0c;学以致用嘛&#xff0c;这也是咱们不断学习的动力&#xff01; 我们要爬取的网站是YY直播&#xff0c;不知道有多少朋友知道&#xff0c;反正小编以前是不知道的&#xff0c;真的不知道~ 那么为什么我们选择这个网站呢&#xff0…

【5.1】Nacos注册中心--认识和安装Nacos/快速入门

【5.1】Nacos注册中心--认识和安装Nacos/快速入门1 认识Nacos2 安装Nacos3 服务注册到Nacos4 总结1 认识Nacos Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud中的一个组件。相比Eureka功能更加丰富&#xff0c;在国内受欢迎程度较高。 2 安装Nacos 建议大家下载Typora之…

Grafana 系列文章(五):Grafana Explore 查询管理

&#x1f449;️URL: https://grafana.com/docs/grafana/latest/explore/query-management/ &#x1f4dd;Description: Explore 中的查询管理 为了帮助调试查询&#xff0c;Explore 允许你调查查询请求和响应&#xff0c;以及查询统计数据&#xff0c;... Explore 中的查询管理…

CTFshow_萌新--密码篇

一、萌新认证进群大喊萌新码&#xff0c;即可获得。。。。。二、萌新密码1密文&#xff1a;53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D并给上了一下工具包。①密文首先Hex解码得到串&#xff1a;S1lkZjBhM2Vi…

项目管理工具——Maven

目录儿一、Maven简介二、下载与安装环境配置三、Maven基础概念3.1 仓库3.2 坐标在中央仓库网获取依赖坐标3.3 本地仓库配置3.4 远程仓库配置一、Maven简介 Maven是用java语言编写的。Maven的本质是一个项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型(PO…