Mr. Cappuccino的第48杯咖啡——冒泡APP(升级版)之基于Docker部署企业级Maven私服

news2024/10/6 18:31:33

冒泡APP(升级版)之基于Docker部署企业级Maven私服

      • 基于Docker安装Nexus
      • 登录Maven私服
      • 配置Maven仓库
      • 配置settings.xml和pom.xml
      • 项目实践及常见问题

基于Docker安装Nexus

查看sonatype/nexus镜像版本

在这里插入图片描述

下载指定版本的镜像

docker pull sonatype/nexus3:3.48.0

将容器目录(/var/nexus-data)挂载到主机目录(/root/nexus-data)

docker run -d \
	-p 8849:8081 --name nexus \
	-v /root/nexus-data:/var/nexus-data \
	--restart=always sonatype/nexus3:3.48.0

查看正在运行的容器并根据容器ID查看正在运行的容器的日志

docker ps
docker attach 容器id

在这里插入图片描述
注意:docker attach [options]命令在使用Ctrl+C退出容器时,还会将容器停止运行,如果希望退出容器时不停止运行则需要加上–sig-proxy这个参数

docker attach --sig-proxy=false 容器id

在这里插入图片描述

关闭防火墙

systemctl disable firewalld

登录Maven私服

访问Maven私服主页

在这里插入图片描述

查看Maven私服默认的账号密码

docker ps
docker exec -it 容器id bash
cat /nexus-data/admin.password
exit

在这里插入图片描述

登录Maven私服(默认账号为admin)

在这里插入图片描述

设置新的密码

在这里插入图片描述

创建新用户

在这里插入图片描述

登录新用户的账号

在这里插入图片描述

配置Maven仓库

Maven默认仓库

在这里插入图片描述

默认仓库说明

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中使用;

仓库类型说明

group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为Releases、Snapshots、Central,当然你也可以自己设置;
hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的Jar文件;
snapshots:本地项目的快照仓库;
releases: 本地项目发布的正式版本;
proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库;
central:中央仓库;

创建阿里云代理仓库

http://maven.aliyun.com/nexus/content/groups/public/

在这里插入图片描述

在这里插入图片描述

在maven-public中添加代理仓库

在这里插入图片描述

调整配置的顺序

在这里插入图片描述
在这里插入图片描述

配置settings.xml和pom.xml

配置settings.xml文件

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 
  <localRepository>D:\bubble_jar</localRepository>
 
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers>
	<server>
      <id>bubble</id>
      <username>honey</username>
      <password>honey@163</password>
    </server>
  </servers>
  
  <mirrors>
	<mirror>
		<id>nexus</id>
		<name>internal nexus repository</name>
		<url>http://nexus.honeyyxk.com:8849/repository/maven-public/</url>
		<mirrorOf>*</mirrorOf>
	</mirror>
  </mirrors>
  
  <profiles>
	  <profile>   
		<!--profile的id-->
		<id>bubble</id>
		<properties>
				<downloadSources>true</downloadSources>
				<downloadJavadocs>true</downloadJavadocs>
		</properties>
		<repositories>   
		  <repository>  
		<!--仓库id,repositories可以配置多个仓库,保证id不重复-->
			<id>nexus</id>   
			<!--仓库地址,即nexus仓库组的地址-->
			<url>http://nexus.honeyyxk.com:8849/repository/maven-public/</url>   
			<!--是否下载releases构件-->
			<releases>   
			  <enabled>true</enabled>   
			</releases>   
			<!--是否下载snapshots构件-->
			<snapshots>   
			  <enabled>true</enabled>   
			</snapshots>   
		  </repository>   
		</repositories>  
		<pluginRepositories>  
			<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
			<pluginRepository>  
				<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
				<id>Bubble</id>  
				<name>Bubble Repositories</name>  
				<url>http://nexus.honeyyxk.com:8849/repository/maven-public/</url>  
			</pluginRepository>  
		</pluginRepositories> 
	  </profile>
  </profiles>
  
  <activeProfiles>
    <activeProfile>bubble</activeProfile>
  </activeProfiles>

</settings>

配置pom.xml文件

在这里插入图片描述

在这里插入图片描述

<!-- 注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
<!-- 指定仓库地址 -->
<distributionManagement>
    <repository>
        <!-- 此名称要和.m2/settings.xml中设置的ID一致 -->
        <id>bubble</id>
        <url>http://nexus.honeyyxk.com:8849/repository/maven-releases/</url>
    </repository>
</distributionManagement>
<repositories>
    <repository>
        <id>bubble</id>
        <url>http://nexus.honeyyxk.com:8849/repository/maven-releases/</url>
    </repository>
</repositories>

项目实践及常见问题

在IDE中配置Maven环境

在这里插入图片描述

将所有的模块打包上传到Maven私服

在这里插入图片描述

如果报以下错误,说明仓库中已经存在相同版本的Jar包,宿主仓库默认不允许重复部署相同的Jar包,只需要将宿主仓库的 Deployment Policy 改为 “Allow Redeploy ” 即可解决。

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project bubble-parent: Failed to deploy artifacts: Could not transfer artifact com.bubble:bubble-parent:pom:1.0-RELEASE from/to bubble (http://nexus.honeyyxk.com:8849/repository/maven-releases/): Failed to transfer file http://nexus.honeyyxk.com:8849/repository/maven-releases/com/bubble/bubble-parent/1.0-RELEASE/bubble-parent-1.0-RELEASE.pom with status code 400

在这里插入图片描述

最后Jar包全都成功上传到私服了

在这里插入图片描述

清空本地Maven仓库

在这里插入图片描述

刷新Maven依赖,如果报以下错误,则记得检查账号密码是否配置有误

Could not transfer artifact org.springframework.boot:spring-boot-dependencies:pom:2.4.2 from/to nexus (http://nexus.honeyyxk.com:8849/repository/maven-public/): Not authorized

在这里插入图片描述

我这里是由于不允许匿名访问所导致,勾选允许匿名访问即可

在这里插入图片描述

在这里插入图片描述

如果项目能正常编译了,但Maven还是报错(有红色波浪线)的话,则可以重启一下IDE,重启完IDE后就没有红色波浪线了。

在这里插入图片描述

现在Maven私服和本地仓库中都有项目所依赖的Jar包啦

在这里插入图片描述

在这里插入图片描述

到这里基本上就已经大功告成了。

遇到了一点小问题:虽然可以使用IDE的Maven进行deploy,但是在IDE命令栏使用mvn clean deploy这个命令时,却会报错。

在这里插入图片描述

这是因为IDE命令栏生效的settings.xml配置不是IDE中配置的settings.xml,可以使用以下命令查看。

mvn help:effective-settings

在这里插入图片描述

mvn -X

在这里插入图片描述

遇到这个问题,我们可以修改环境变量来解决

在这里插入图片描述

在这里插入图片描述

配置的环境变量路径最好不要有中文字符,因为我这里只是临时调整,所以就懒得换了。如果配置的环境变量没有生效,可以重启IDE试一试,或者重新打开CMD验证一下。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【C语言】有关的经典题型内含数组及递归函数题型讲解(入门适用)

C语音经典题型1. 在屏幕上输出9*9乘法口诀表2. 求10 个整数中最大值3. 计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值&#xff0c;打印出结果4. 编写程序数一下 1到 100 的所有整数中出现多少个数字95. 能把函数处理结果的二个数据返回给主调函数6. 实现一个函数&#xff0c;…

Https 笔记

HTTP TLS TLS 的前身是 SSL 非对称加密的核心&#xff1a; 两个密钥&#xff08;公私&#xff09; https 需要第三方CA&#xff08;证书授权中心&#xff09;申请SSL证书以确定其真实性 证书种包含了特定的公钥和私钥 密钥交换 自己将私钥上锁后发给对方对方也上锁 在还回来…

【2023包河区】题解

今天早上也是打完了包河区&#xff0c;不得不说是太 了 所以说&#xff0c;还是水一篇文章吧 T1 签到题 超级简单题吧&#xff0c;用max_score和max_name来计最大的名字和分数。 int n;scanf("%d",&n); int score,max_score; string name,max_name;对于一个新…

Windows修改Docker安装目录修改Docker镜像目录,镜像默认存储位置存放到其它盘

Windows安装Docker&#xff0c;默认是安装在C盘&#xff0c;下载镜像后会占用大量空间&#xff0c;这时需要调整镜像目录&#xff1b;场景&#xff1a;不想连服务器或者没有服务器&#xff0c;想在本地调试服务&#xff0c;该需求就非常重要。基于WSL2安装docker后&#xff0c;…

【Java】数组

目录 1.数组的定义与初始化 2.遍历数组 3.认识null 4.引用变量 5.返回多个值 6.数组拷贝 7.数组逆序 8.数组填充 9.小练习 //将整形数组转化为字符串 //二分查找优化 //冒泡排序优化 10.二维数组 //遍历二维数组 //不规则的二维数组 1.数组的定义与初始化 int…

了解国外SEO负面压制的现状与应对策略!

随着全球化的发展&#xff0c;越来越多的企业和品牌开始将目光转向海外市场&#xff0c;而谷歌作为全球最大的搜索引擎之一&#xff0c;也成为了外贸企业最主要的搜索引擎之一。 然而&#xff0c;随着谷歌的不断发展&#xff0c;国外SEO负面压制的现状也愈发严峻&#xff0c;外…

Android 9.0 Settings主菜单去掉自定义您的设备功能

1.前言 在9.0的系统rom定制化开发中,在系统Settings主页面一级菜单中,在开启护眼模式和改变系统密度的功能操作时,这时会发现在主菜单的网络菜单头部增加 自定义您的设备和设置护眼模式时间安排 等等相关的设置模块 这对于菜单布局显示相当不美观,产品要求不需要显示这些,…

SpringSecurity学习(四)密码加密、RememberMe记住我

文章目录密码加密一、简介密码为什么要加密常见的加密解决方案PasswordEncoder详解DelegatingPasswordEncoder二、自定义加密方式1. 使用灵活的密码加密方案&#xff08;BCryptPasswordEncoder&#xff09;加密验证&#xff08;推荐&#xff09;需要在密码前指定加密类型{bcryp…

Java学习笔记 --- Servlet(2)

一、HttpServletRequest类 1、基本介绍 每次只要有请求进入 Tomcat 服务器&#xff0c;Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 service 方法&#xff08;doGet 和 doPost&#xff09;中给我们使用。我们可以通过 HttpServletR…

渗透测试 | Email信息收集

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

微服务保护(Sentinel)

1.雪崩微服务链路上某个服务出现了问题&#xff0c;结果导致整个微服务调用链上所有服务都出现了问题&#xff0c;这就是雪崩。2.解决雪崩问题的常见方式有四种1.超时处理&#xff1a;设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等…

人工智能简单应用1-OCR分栏识别:两栏识别三栏识别都可以,本地部署完美拼接

大家好&#xff0c;我是微学AI&#xff0c;今天给大家带来OCR的分栏识别。 一、文本分栏的问题 在OCR识别过程中&#xff0c;遇到文字是两个分栏的情况确实是一个比较常见的问题。通常情况下&#xff0c;OCR引擎会将文本按照从左到右&#xff0c;从上到下的顺序一行一行地识别…

软考高项——信息文档管理

信息文档管理信息文档管理文档分类文档质量等级文档管理的规则和方法信息文档管理 信息文档管理的总线索包括&#xff1a; 1&#xff09;文档分类 2&#xff09;文档质量等级 3&#xff09; 文档分类 1、开发文档 开发过程中用到的文档 &#xff08;可行性报告、任书、需求、…

Django实践-06导出excel/pdf/echarts

文章目录Django实践-06导出excel/pdf/echartsDjango实践-06导出excel/pdf/echarts导出excel安装依赖库修改views.py添加excel导出函数修改urls.py添加excel/运行测试导出pdf安装依赖库修改views.py添加pdf导出函数修改urls.py添加pdf/生成前端统计图表修改views.py添加get_teac…

Qt读xml文件

QXmlStreamReaderQXmlStreamReader类通过简单的流式API为我们提供了一种快速的读取xml文件的方式。他比Qt自己使用的SAX解析方式还要快。所谓的流式读取即将一个xml文档读取成一系列标记的流&#xff0c;类似于SAX。而QXmlStreamReader类和SAX的主要区别就是解析这些标记的方式…

Linux自动化交互命令expect测试

介绍 expect 是由Don Libes基于Tcl&#xff08;Tool Command Language &#xff09;语言开发的&#xff0c;主要应用于自动化交互式操作的场景&#xff0c;借助Expect处理交互的命令&#xff0c;可以将交互过程如&#xff1a;ssh登录&#xff0c;ftp登录等写在一个脚本上&#…

RabbitMQ系列(1)--RabbitMQ简介

1、RabbitMQ概念RabbitMQ是一个消息中间件&#xff0c;不对消息进行处理&#xff0c;只对消息做接收、存储和转发。2、RabbitMQ四大核心概念(1)生产者产生数据发送信息的程序(2)交换机交换机是RabbitMQ中一个非常重要的部件&#xff0c;接收来着生产者的消息并把消息推送到队列…

PMP项目管理项目沟通管理

目录1 项目沟通管理2 规划沟通管理3 管理沟通4 监督沟通1 项目沟通管理 项目沟通管理包括通过开发工件&#xff0c;以及执行用于有效交换信息的各种活动&#xff0c;来确保项目及其相关方的信息需求得以满足的各个过程。项目沟通管理由两个部分组成&#xff1a;第一部分是制定…

云企业网CEN介绍与实践

云企业网CEN介绍 云企业网&#xff08;Cloud Enterprise Network&#xff09;是一款能快速构建混合云和分布式业务系统的全球网络服务。 运行在云厂商的私有全球网络上实现跨地域专有网络间&#xff0c;专有网络与本地数据中心间的私网通信 提供高效、稳定的网络传输服务适用…

【网络】什么是RPC?RPC与HTTP有什么关系?

文章目录RPC是什么RPC和HTTP的关系和区别[附]关于REST论文中提到的"HTTP不是RPC"重点参考 凤凰架构-远程过程调用 既然有HTTP为什么还要有RPC&#xff1f; RPC是什么 RPC(Remote Procedure Call)&#xff1a;即远程过程调用&#xff0c;目的是为了让计算机能够跟调用…