動態

詳情 返回 返回

Maven踩坑記錄與反思 - 動態 詳情

本次事件的發生是在我來到一個新的技術初創團隊,由於團隊中的前同事與我交接代碼時候,關於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

user avatar qishiwohendou 頭像 xuxueli 頭像 lenglingx 頭像 eolink 頭像 javatodo 頭像 fanudekaixinguo 頭像 chaoxi_67109d31bc42f 頭像 cbuc 頭像 wuliaodechaye 頭像 zbooksea 頭像 tuhooo 頭像 yunpan-plus 頭像
點贊 26 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.