前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Maven踩坑记录与反思

Maven踩坑记录与反思

原创
作者头像
舒一笑不秃头
发布2025-03-08 15:20:45
发布2025-03-08 15:20:45
4800
代码可运行
举报
运行总次数:0
代码可运行

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

回顾Mavenue的背景

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

image-20250308131414362
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
image-20250308140612657

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

image-20250308140629352
image-20250308140629352

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

image-20250308140818657
image-20250308140818657

问题概述与解决方案复盘

问题描述

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

image-20250308141104364
image-20250308141104364

讲真的此刻的内心是:

3de654dd28c62a8ddf5dd1b5c16a06ee
3de654dd28c62a8ddf5dd1b5c16a06ee

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

解决方案的尝试

1.尝试重置私服密码

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

代码语言:javascript
代码运行次数:0
复制
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t REG_DWORD /d 3000 /f

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

image-20250308142444473
image-20250308142444473
image-20250308142515874
image-20250308142515874

言归正传~

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

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

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

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

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

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

image-20250308143443483
image-20250308143443483

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

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

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

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

image-20250308144049142
image-20250308144049142

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

错误信息展示:

代码语言:javascript
代码运行次数:0
复制
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
image-20250308145434841

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

image-20250308145654229
image-20250308145654229

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

2.尝试将Nexus中存放私服依赖的二进制文件放入本地全新的Nexus私服中进行解决
image-20250308144534710
image-20250308144534710
3.老板求人,找原先研发要回相关源代码打包寻找回依赖(兜底方案)

问题后续

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

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

image-20250308150134395
image-20250308150134395
image-20250308150306528
image-20250308150306528

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

image-20250308150447363
image-20250308150447363

反思

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

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 回顾Mavenue的背景
    • Maven4的前瞻性
  • Maven私服简述
  • 问题概述与解决方案复盘
    • 问题描述
    • 解决方案的尝试
      • 1.尝试重置私服密码
      • 2.尝试将Nexus中存放私服依赖的二进制文件放入本地全新的Nexus私服中进行解决
      • 3.老板求人,找原先研发要回相关源代码打包寻找回依赖(兜底方案)
    • 问题后续
  • 反思
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档