本文作者:徐曉偉
GitLab 是一個全球知名的一體化 DevOps 平臺,很多人都透過私有化部署 GitLab 來進行原始碼託管。極狐GitLab 是 GitLab 在中國的發行版,專門為中國程式設計師服務。可以一鍵式部署極狐GitLab。
極狐GitLab Maven 倉庫
極狐GitLab Maven 私庫使用方式
文件
- 軟體包庫中的 Maven 包
配置(以Maven為例)
- 示例專案 my-maven-app
-
身份認證(以下順序為官方文件的順序,選擇一個適合自己的即可)
-
在 Maven 中使用個人訪問令牌進行身份驗證
settings.xml
檔案中的配置如下
<settings> <servers> <server> <!-- 固定值 --> <id>gitlab-maven</id> <configuration> <httpHeaders> <property> <!-- 此方式的固定值,不可改 --> <name>Private-Token</name> <!-- 個人令牌,推薦在個人電腦上執行時使用(個人令牌需要 api 許可權) --> <value>REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN</value> </property> </httpHeaders> </configuration> </server> </servers> </settings>
-
在 Maven 中使用部署令牌進行身份驗證
settings.xml
檔案中的配置如下
<settings> <servers> <server> <!-- 固定值 --> <id>gitlab-maven</id> <configuration> <httpHeaders> <property> <!-- 此方式的固定值,不可改 --> <name>Deploy-Token</name> <!-- 部署令牌,推薦在不是 GitLab Runner 流水線時使用 --> <!-- 在專案的倉庫設定中可建立部署令牌,需要 read_package_registry、write_package_registry 許可權 --> <value>REPLACE_WITH_YOUR_DEPLOY_TOKEN</value> </property> </httpHeaders> </configuration> </server> </servers> </settings>
-
使用 Maven 中的 CI 作業令牌進行身份驗證
settings.xml
檔案中的配置如下- 此處使用的是 GitLab Runner 流水線釋出 jar 包(其他方式釋出時的命令雷同)
- 示例專案 my-maven-app 中使用自定義
settings.xml
檔名為settings.xml
,並在其中增加了國內Maven倉庫代理,用於加速依賴下載,釋出命令 - 僅釋出二進位制:
mvn clean -U package deploy -DskipTests -s settings.xml
- 釋出二進位制、原始碼:
mvn clean -U package source:jar deploy -DskipTests -s settings.xml
- 釋出二進位制、原始碼、javadoc:
mvn clean -U package source:jar javadoc:jar deploy -DskipTests -s settings.xml
<settings> <servers> <server> <!-- 固定值 --> <id>gitlab-maven</id> <configuration> <httpHeaders> <property> <!-- 此方式的固定值,不可改 --> <name>Job-Token</name> <!-- 如果你使用的是 GitLab Runner 流水線釋出專案,推薦使用此方式 --> <!-- CI_JOB_TOKEN 是 GitLab Runner 流水線的環境變數 --> <value>${CI_JOB_TOKEN}</value> </property> </httpHeaders> </configuration> </server> </servers> </settings>
-
-
專案級 Maven 端點(釋出,僅在 GitLab Runner 流水線釋出時可以使用環境變數)
<distributionManagement> <repository> <!-- 固定值,與 settings.xml 中的 server id 相同,否則私有倉庫無法匹配到秘鑰釋出 --> <id>gitlab-maven</id> <!-- 其中數字為專案ID,訪問專案地址即可看到 --> <!--<url>https://gitlab.com/api/v4/projects/53229683/packages/maven</url>--> <!-- 使用環境變數 CI_PROJECT_ID 替換專案ID --> <!-- 使用環境變數 CI_API_V4_URL 替換 GitLab API 介面地址 --> <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url> </repository> <snapshotRepository> <!-- 固定值,與 settings.xml 中的 server id 相同,否則私有倉庫無法匹配到秘鑰釋出 --> <id>gitlab-maven</id> <!-- 其中數字為專案ID,訪問專案地址即可看到 --> <!--<url>https://gitlab.com/api/v4/projects/53229683/packages/maven</url>--> <!-- 使用環境變數 CI_PROJECT_ID 替換專案ID --> <!-- 使用環境變數 CI_API_V4_URL 替換 GitLab API 介面地址 --> <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url> </snapshotRepository> </distributionManagement>
-
專案級 Maven 端點(使用,不能使用環境變數) 使用已釋出的 Maven jar 包
<repositories> <repository> <!-- 與 settings.xml 中的 server id 相同,否則私有倉庫無法匹配到秘鑰釋出 --> <id>gitlab-maven</id> <!-- https://gitlab.example.com:GitLab 例項的域名(IP),不能使用環境變數 --> <!-- PROJECT_ID:專案ID,訪問需要使用的 Maven jar 包 倉庫地址即可檢視到專案ID --> <url>https://gitlab.example.com/api/v4/projects/PROJECT_ID/packages/maven</url> </repository> </repositories>
-
釋出的Jar包可以在 軟體包庫 中看到
更多關於極狐GitLab 的最佳實踐,請搜尋關注【極狐GitLab】公眾號或者登入極狐GitLab 官網進行學習。