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でパーソナルアクセストークンについて何か見たことがありますが、それを設定する方法がわかりません(読み取り専用アクセスのみが必要だと思いますか?)。
まず、いくつかの前提条件。プライベートリポジトリを使用していると述べたので、 を使用するには、少なくとも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
を使用してアーティファクトをアップロードできるようになります。