簡體   English   中英

Gitlab maven 部署到 package 注冊表

[英]Gitlab maven deploy to package registry

我正在嘗試 gitlab,它看起來非常有前途。 我遇到了一個巨大的問題,似乎整個互聯網上沒有人知道如何解決這個問題。

我添加了一個項目,它是一個 maven 項目(只有一個 pom.xml),我想將它部署到 package 注冊表。 如果我在家用電腦上執行此操作,這很簡單。 我只是將部署令牌添加到我的 settings.xml 並執行mvn deploy

我想在每次構建時將 maven 部署到 package 注冊表,因此當我提交並推送需要構建的代碼時。 問題是,如何將 Deploy 令牌傳遞給管道? 所以簡而言之,我想自動部署一個 maven 庫/依賴項,以便其他項目可以使用該依賴項。 這就是它應該如何工作,但是在 gitlab 中完全沒有記錄如何做到這一點,而且它幾乎就像這個星球上沒有人這樣做一樣。

簡而言之,如何將 maven 項目部署到項目/組 package 注冊表?

實際上gitlab 文檔中有一個很好的解釋。

我將簡要概述此過程,但最后它只是文檔的副本,但鏈接可以更改,也可以移動。 所以以后的人會找到這個答案。

正如您在下面的說明中所看到的,您可以簡單地為 maven 提供帶有-s <file>標志的 settings.xml。 它允許您在實際項目中存儲基本設置。xml。

  1. 創建一個ci_settings.xml文件作為 Maven 的 settings.xml 文件。

  2. 使用您在pom.xml文件中定義的相同 ID 添加服務器部分。 例如,使用 gitlab-maven 作為 ID:

     <settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"> <servers> <server> <id>gitlab-maven</id> <configuration> <httpHeaders> <property> <name>Job-Token</name> <value>${env.CI_JOB_TOKEN}</value> </property> </httpHeaders> </configuration> </server> </servers> </settings>
  3. 確保您的pom.xml文件包含以下內容。 您可以讓 Maven 使用 CI 環境變量,如本例所示,或者您可以硬編碼服務器的主機名和項目 ID。

     <repositories> <repository> <id>gitlab-maven</id> <url>${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven</url> </repository> </repositories> <distributionManagement> <repository> <id>gitlab-maven</id> <url>${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven</url> </repository> <snapshotRepository> <id>gitlab-maven</id> <url>${env.CI_SERVER_URL}/api/v4/projects/${env.CI_PROJECT_ID}/packages/maven</url> </snapshotRepository> </distributionManagement>
  4. 將部署作業添加到您的.gitlab-ci.yml文件:

     deploy: image: maven:3.6-jdk-11 script: - 'mvn deploy -s ci_settings.xml'
  5. 將這些文件推送到您的存儲庫。

我想再次強調這是實際文檔的內容,為了完整起見,我只是在此處添加了它(我不是模仿貓,不想讓其他人的工作得到認可;;))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM