環境準備
-
安裝 JDK :確保系統已安裝 JDK 8 或更高版本。可以通過以下命令安裝 JDK:
-
安裝 OpenJDK :
sudo apt update && sudo apt install openjdk-11-jdk
-
安裝 Oracle JDK :需要添加第三方倉庫,例如 WebUpd8 團隊的倉庫,不過 Oracle JDK 的安裝相對復雜一些,OpenJDK 已經可以滿足大多數需求。
-
安裝完成后,通過
java -version
命令檢查是否安裝成功。
-
-
安裝 Maven :可以通過以下命令安裝 Maven(但 Maven 私服搭建更多依賴于 Nexus,Maven 本身主要用于項目本地構建,安裝 Maven 主要是方便后續項目開發使用):
-
sudo apt update && sudo apt install maven
-
安裝完成后,通過
mvn -version
命令檢查是否安裝成功。
-
安裝 Nexus
-
下載 Nexus :從Nexus 官方網站下載適用于 Linux 的 Nexus 安裝包,通常是 tar.gz 格式。
-
解壓安裝包 :使用以下命令解壓安裝包到指定目錄,例如
/opt/nexus
:-
sudo tar -zxvf nexus-3.x.x-unix.tar.gz -C /opt/
-
-
配置運行用戶 :默認情況下 Nexus 不能用 root 用戶啟動,需要創建一個用戶來專門運行 Nexus:
-
創建用戶并設置密碼:
sudo useradd nexus && sudo passwd nexus
-
修改
/etc/security/limits.conf
文件,在文件末尾加上nexus - nofile 65535
,以提高文件打開數限制。
-
-
修改配置文件 :編輯
/opt/nexus/bin/nexus.rc
文件,設置運行 Nexus 的用戶,將RUN_AS_USER=root
改為RUN_AS_USER=nexus
,并確保該用戶有權限訪問 Nexus 安裝目錄及其文件。
啟動與登錄 Nexus
-
啟動服務 :進入 Nexus 安裝目錄的 bin 文件夾,執行以下命令啟動 Nexus 服務:
-
sudo ./nexus start
-
默認情況下,Nexus 會監聽本地的 8081 端口。
-
-
訪問管理界面 :在瀏覽器中輸入
http://<服務器 IP 地址>:8081
訪問 Nexus 的管理界面。 -
登錄 :首次訪問時,默認的用戶名是 admin,初始密碼可在
/opt/sonatype-work/nexus3/admin.password
文件中找到,登錄后建議修改默認密碼。
配置 Nexus 倉庫
-
創建倉庫 :登錄 Nexus 管理界面后,可以根據需求創建不同類型的倉庫,如 Hosted 類型的倉庫用于存儲團隊內部開發的項目構件,Proxy 類型的倉庫代理公共倉庫,Group 類型的倉庫將多個倉庫聚合在一起,方便統一管理和訪問。
-
配置倉庫 :在創建倉庫時,設置倉庫的 ID、名稱、描述等基本信息,以及存儲路徑、快照策略等高級配置。
配置 Maven 項目使用私服
-
修改 settings.xml 文件 :在 Maven 的
conf
目錄下的settings.xml
文件中,配置私服相關信息:-
在
<servers>
標簽中添加私服的認證信息,如:-
<server>
,<id>nexus-releases</id>
,<username>your_username</username>
,<password>your_password</password>
,</server>
-
這里的 id 要與項目
pom.xml
中配置的倉庫 id 相對應。
-
-
在
<mirrors>
標簽中配置倉庫地址,如:-
<mirror>
,<id>nexus</id>
,<mirrorOf>*</mirrorOf>
,<name>Nexus Repository</name>
,<url>http://<服務器 IP 地址>:8081/repository/maven-public/</url>
,</mirror>
-
上述配置表示將所有的倉庫請求都指向搭建的 Nexus 私有倉庫中的 maven-public 組倉庫。
-
-
-
在
<profiles>
標簽中配置多倉庫使用 :根據需求設置不同倉庫的啟用狀態等。
上傳構件至私服
-
手動部署 :可以直接將構件文件(如 jar 包)通過 Nexus 管理界面上傳到私服倉庫中。在管理界面中找到對應的倉庫,點擊“上傳”按鈕,選擇要上傳的構件文件并提交即可。
-
構建時自動部署 :在 Maven 項目的
pom.xml
文件中,通過<distributionManagement>
標簽配置項目的發布倉庫和快照倉庫,將項目的構建結果自動部署到私服中。例如:-
<distributionManagement>
,<repository>
,<id>maven-releases</id>
,<name>nexus-releases</name>
,<url>http://<服務器 IP 地址>:8081/repository/maven-releases/</url>
,</repository>
,<snapshotRepository>
,<id>maven-snapshots</id>
,<name>nexus-snapshots</name>
,<url>http://<服務器 IP 地址>:8081/repository/maven-snapshots/</url>
,</snapshotRepository>
,</distributionManagement>
-
然后在項目根目錄下運行
mvn deploy
命令,Maven 會根據配置將項目的構建結果部署到私服的對應倉庫中。
-
使用私服中的構件
在項目的pom.xml
文件中,通過<dependency>
標簽引用私服中的構件,Maven 在構建項目時會自動從配置的私服中下載所需的依賴。例如: <dependency>
,<groupId>org.example</groupId>
,<artifactId>my-library</artifactId>
,<version>1.0.0</version>
,</dependency>
。