web-dev-qa-db-ja.com

GitLabプライベートリポジトリをMaven依存関係として追加します

Mavenプロジェクトの依存関係として追加したいプライベートリポジトリがGitLabにあります(グループ内にあり、開発者の役割があります)。

私はしばらく探していましたが、pom.xmlに以下を追加する必要があることがわかりました。

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </repository>
</repositories>

<distributionManagement>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </repository>
  <snapshotRepository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </snapshotRepository>
</distributionManagement>

ただし、依存関係自体を(groupIdなどを使用して)追加する方法がわかりません。また、Mavenがプロジェクトをダウンロードできるようにするための認証方法もわかりません。 GitLabでパーソナルアクセストークンについて何か見たことがありますが、それを設定する方法がわかりません(読み取り専用アクセスのみが必要だと思いますか?)。

6
Priv

まず、いくつかの前提条件。プライベートリポジトリを使用していると述べたので、 を使用するには、少なくともGitLab Silver(gitlab.comでホストされている)またはGitLab Premium(自己ホストされている)が必要です。 GitLab Mavenパッケージリポジトリ 。また、セルフホストの場合は、 GitLab 11.3 以降(来週はこの時間にリリースされるはずです)を使用している必要があります。 packages_enabledをtrueに設定します( パッケージリポジトリの有効化 を参照)。

プライベートプロジェクトの場合、 パーソナルアクセストークン が必要です。トークンには、MavenがアーティファクトをGitLabにアップロードするためのapiスコープが必要です。トークンを取得したら、settings.xmlを次のように構成します。

<settings>
  <servers>
    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>Private-Token</name>
            <value>REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>
</settings>

省略記号があるpom.xmlに、プロジェクトIDを入力する必要があります。 IDを見つけるには、GitLabのプロジェクトのフロントページにアクセスしてください。プロジェクトの名前と説明の直後に、ページの上部近くに表示されます。たとえば、 mvn-example サンプルプロジェクトを見てください。そのプロジェクトIDは8377576です。これはURLに含まれています。

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/8377576/packages/maven</url>
  </repository>
</repositories>

mvn-exampleプロジェクトのpom.xmlファイル は、完成した例を示しています。

これらすべてを設定すると、mvn deployを使用してアーティファクトをアップロードできるようになります。

8