Maven踩坑记录与反思

news/2025/3/11 2:19:57/文章来源:https://www.cnblogs.com/shuyixiao/p/18759348

本次事件的发生是在我来到一个新的技术初创团队,由于团队中的前同事与我交接代码时候,关于Maven私服这块的账号密码为给我,导致一系列的爱恨情仇。事件的持续花费两天时间进行解决,现在总结一下遇到的问题与解决思路!

回顾Mavenue的背景

关于Maven,维基百科给的解释主要有两种,分别是Apache软件基金会所提供,主要是用于解决Java软件的项目管理与自动构建工具。

image-20250308131414362

详细介绍Maven快速上手官方地址:https://maven.apache.org/guides/getting-started/index.html

Maven4的前瞻性

Maven 已有 20 多年的历史,是 Java 世界中使用最广泛的构建工具。多年来,Maven 一直保持向后兼容性,尤其是其 POM 文件与模型版本 4.0.0 的兼容性。Maven 4 需要 Java 17。这允许 Maven(及其维护者)使用更新的语言功能和改进。详细功能性概述不在此赘述,具体内容可查看:https://maven.apache.org/whatsnewinmaven4.html

Maven私服简述

市场上关于Maven私服配置主要存在两种解决方案,分别是:NexusArtifactory

其中Nexus官网为:https://www.sonatype.com/

image-20250308140612657

Artifactory官网为:https://jfrog.com/

image-20250308140629352

有关于两者区别,网上的描述铺天盖地。结合KiMi的模型给我的反馈简单说就是,Nexus便宜些,Artifactory功能更加强大但是同时也更加贵。

image-20250308140818657

问题概述与解决方案复盘

问题描述

首先,目前技术团队使用Maven私服为Nexus,但是具体配置的账号密码。前同事与我交接过程中并没有给我,老板与我再三联系都杳无音信。

image-20250308141104364

讲真的此刻的内心是:

3de654dd28c62a8ddf5dd1b5c16a06ee

但是没有办法,事情既然已经发生。后续老板也与我进行沟通,单独谈了此事。既然联系几次之后都毫无回应,但是问题肯定是需要进行解决。假如现在的我一直纠结于对方何时会给我们反馈,这件事是一个件不确定事情。作为一个研发人员,假如想从事以后能做解决方案架构师角度,肯定是需要进行另寻他路。

解决方案的尝试

1.尝试重置私服密码

感谢看到文章这里的小伙伴,为表示感谢这里送大家一个解决Windows更新的脚本:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t REG_DWORD /d 3000 /f

在cmd的黑窗口执行完上述命令之后可以延期电脑很久的自动更新,下面给大家看看效果:

image-20250308142444473

image-20250308142515874

言归正传~

b4dc282281117a3cf7fe7c72957b8102

尝试使用默认密码admin123进行登录

结果可想而知,一般对于公网服务器上安装私服,密码一般是经过修改,所以这个尝试失败了~

通过ssh工具连接上服务器,查看Nexus安装目录admin.password文件

首先对这个方案,我一开始觉得还是存在尝试必要,当我信心满满去查看之后发现根本没有这个文件,可能是修改过密码。该初始化文件会丢失,或者手动被删除了。

98aeed50e2b912c314f338b6b88537d6

重置Nexus密码
1.尝试使用OSGi Shell 并重置密码

目前结合很火AI给我详细的操作步骤,但是当我按照步骤进行有条不紊尝试之后,发现事与愿违。

image-20250308143443483

主要当我连接上服务器查看之后,执行到上述第二步就卡住了,日志不断的再报错。关于是否继续,我觉得此刻作为技术人角度是应该迎难而上,但是从架构师角度或者从商业思维看。不断往下走,是将一件本来很确定的事情(我需要解决这个私服密码重置问题),一步一步的往一个不确定的方向发展,最后时间白白浪费。。。。。。

2.查看网上以往吃螃蟹解决方案

尝试过几种解决方案,其中在CSDN中,一篇文章中的解决方案,经过尝试解决了本次的问题:

https://blog.csdn.net/qq_35493807/article/details/106917124

image-20250308144049142

当然事情发展到这一步,本来想着会很顺利。当我重置完成之后,重新启动Nexus之后。应该很快就可以将私服启动起来。但是真的是应了句老话,翻过一个坑之后又是一个坑。此刻查看启动的日志之后发现,Nexus中内置的数据库读写空间需要4096MB,但是目前的空间只有3000+MB空间不够。

错误信息展示:

Caused by: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'OSystem' due to limited free space on the disk (3453 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .DB name="OSystem"at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.createRecord(OAbstractPaginatedStorage.java:1339)at com.orientechnologies.orient.core.config.OStorageConfigurationImpl.create(OStorageConfigurationImpl.java:707)at com.orientechnologies.orient.core.storage.impl.local.OStorageConfigurationSegment.create(OStorageConfigurationSegment.java:121)at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.create(OAbstractPaginatedStorage.java:489)at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.create(OLocalPaginatedStorage.java:131)at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.create(ODatabaseDocumentTx.java:438)... 21 common frames omitted
2025-03-07 14:32:15,321+0800 INFO  [FelixStartLevel]  *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Uptime: 20 seconds and 209 milliseconds (nexus-oss-edition/3.29.2.02)
2025-03-07 14:32:15,322+0800 INFO  [FelixStartLevel]  *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Shutting down
2025-03-07 14:32:15,323+0800 INFO  [FelixStartLevel]  *SYSTEM org.sonatype.nexus.extender.NexusLifecycleManager - Stop KERNEL

关于此刻,想到的解决方案几种。

a.尝试修改配置文件,将大小设置为3000MB。经过网上的尝试之后,发现并没有读取到配置文件中的信息,几轮尝试之后都是如此,从确定性角度考虑放弃。往后越走越是不确定~

b.将开发服务器中路径下,没有用到的文件进行删除。或者大的日志文件进行删除,但是这个方案也存在一个问题,就是目前虽然是开发服务器,但是具体哪些文件是否有用我不清楚,所以这个方案我放弃~

c.尝试能否通过将别的分区进行迁移到该分区之下,通过磁盘空间命令进行查看,发现并没有LVM逻辑卷不能直接进行扩容,方案放弃。

d.尝试云主机进行扩容,查看公司云主机服务器商天翼云,将原先的系统盘60G扩容至70G,价格经过老板商量之后19.8元,进行扩容。

image-20250308145434841

扩容完成之后,虽然页面显示70G,但是通过与天翼云客服了解之后得知,要是需要生效,不重启就是需要根据文档进行动态扩容。省事就是通过进行重启,最后通过询问老板意见,得知可以重启之后进行服务器重启。

image-20250308145654229

重启完成之后Neuxs密码得到了解决。

2.尝试将Nexus中存放私服依赖的二进制文件放入本地全新的Nexus私服中进行解决

image-20250308144534710

3.老板求人,找原先研发要回相关源代码打包寻找回依赖(兜底方案)

问题后续

当maven问题得到解决之后,拉取私服依赖还是得不到解决,相关依赖已经存在于私服,但是就是获取不到。

后续通过查看maven配置文件,通过在settings配置文件中配置多组账号密码

image-20250308150134395

image-20250308150306528

结合本地项目文件指定配置

image-20250308150447363

反思

1.期望人与人之间能多一些信任,爱恨情仇大家都有,但是作为职场人,基本的职业素养希望大家可以互相温柔以待~

2.没有回应的山谷不值得纵身一跃,于是我决定转身,寻找自己的光芒。面对事件时候,别人的态度回应是不确定因素。做事应该按部就班,思路环环相扣,不要跳跃,最后事件期望的结果是确定的,在实现这个确定结果的过程中,多去做确定事情。不要一再纠结不确定,这样子会让自己有抱怨和急躁心理产生。

3.虽然现在AI能加快找到问题的答案,但是修炼自己的基本功(对自生发展的知识体系也不能落下),遇到报错信息之后,不要一味的丢给AI工具帮你分析,养成自己先思考习惯,不然会不断被短平快思维降低自己的下限,从而不能达到自己更高的上限。

4.路漫漫其修远兮,吾将上下而求索!

6781a36c901a50e5d3c75221ea181e16

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决pyechart模块绘制地图无数据

在绘制地图发现没有数据错误原因: 传入数据中的省份名称不规范 例如: data = [("北京", 99),("上海", 199),("湖南", 299),("台湾", 399),("广东", 499) ]解决办法: 使用此函数,把传入地图的数据传入函数进行处理(返回规…

2025.3.8 考试记录

省流:炸完了!!! 7:35 开考,7:37开始看题。 先看一眼题,没有 DS ,那完了。 按照惯例先试着冲一下 T1 。 有点像二分图最大匹配的题,记不住怎么建图了,睡觉。 T2 是个树上最优解问题,似乎可以冲?先放在一边等着吧。 T3 是序列上的一个问题,序列上的找一个区间 min …

Ubuntu24.04安装Cherry Studio记录

1. 官网下载安装包 在Cherry Studio官网获取Appimage安装包 2. 修改运行权限 下载结束后终端输入chmod 777 AppImage文件路径修改Appimage文件权限为可执行文件。 3. 下载FUSE 直接运行./Cherry-Studio-1.0.6-x86_64.AppImage,发现类似报错:Need to install FUSE 打开FUSE的G…

两块滤膜

“部长通道”上,生态环境部部长掏出了两块滤膜 央视一套2025年03月08日 14:53 北京 ⇧点蓝色字关注“央视一套” 今天(8日),第十四届全国人民代表大会第三次会议第二场“部长通道”集中采访活动举行。生态环境部部长黄润秋、水利部部长李国英、农业农村部部长韩俊接受了媒体…

Windows编程----进程:环境变量

什么是系统环境变量 每台计算机针对当前用户和系统中所有用户分别提供了两个环境变量设置,通过计算机属性>环境变量的界面,我们可以查看当前这台计算机上的所有环境变量,这些环境变量都是key-value键值对。具体如下:上面看到的环境变量其实是存储在注册表中的, 系统环境…

软工作业二:个人项目

| 这个作业属于哪个课程 | 软件工程 | | 这个作业要求在哪里 | 作业要求 | | 这个作业的目标 | 设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。 | 一、使用说明📝 1.使用环境:c++;Visual studio 20…

[T.1] 团队项目:团队成员介绍

组一辈子杰队项目 内容这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)这个作业的要求在哪里 [T.1] 团队项目:团队成员介绍我在这个课程的目标是 学习软件工程理论与实践,完成一款高质量的软件项目这个作业在哪个具体方面帮助我实现目标 确定分工,团队破冰,初步确定…

阿里二面:10亿级分库分表,如何丝滑扩容、如何双写灰度?阿里P8方案+ 架构图,看完直接上offer!

本文的 原始地址 ,传送门 本文的 原始地址 ,传送门 尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题:每天新增100w订单,如何的分库分表? 1…

递归?动态规划?几道题帮你理清楚基本思路!—— 一维动态规划解析

动态规划定义 动态规划(Dynamic Programming,简称 DP)是解决最优化问题的一种重要算法思想。它通过将原问题分解为多个子问题,逐步求解子问题,最终合并子问题的解来解决原问题。动态规划在解决具有重叠子问题和最优子结构性质的问题上非常高效,常用于路径规划、背包问题、…

ABAP-后台Job相关(转)

定义JOB 查看作业日志 查看JOB变式动态日期变式设置 如果有其他的动态参数设置,建议程序中调用JOBDATA:lv_job_name LIKE tbtco-jobname, "作业名lv_job_nr LIKE tbtco-jobcount, "作业号lv_job_released TYPE c,lv_job_start_so…

在Android Studio上完成一个简单的添加项目(累死了!)

所花时间:7h 代码量(行):430 博客量:5 了解的知识点: 真的累死娃了快 昨天需要完成从web端转向Andriod端的小项目,对于已经明白的来说这是挺容易的(我现在是这样觉得的), 但是昨天什么都不知道,从哪里开始都不了解,只能问AI,一开始是依托于IDEA上进行项目搭建和实…