0

我有一个私有项目,我在其中配置了一个 GitLab CI/CD 管道,该管道构建项目并将其发布到同一项目的 GitLab 包注册表。这样可行。

在另一个项目中,我想向该包添加依赖项。尽管我在该项目的 build.gradle 中添加了 maven 存储库声明,但我收到一条错误消息,提示无法解析依赖项,我应该声明提供工件的存储库。

我还尝试添加一个身份验证令牌,但不知何故我没有设法让它工作。

有人看到我在这里做错了吗?

这是我尝试过的:

构建.gradle

repositories {
  mavenCentral()
  maven {
    url 'https://gitlab.com/api/v4/groups/MY-GROUP-ID-THAT-I-ENTERED/-/packages/maven'
    name 'Gitlab'
    credentials(HttpHeaderCredentials) {
      name = 'Private-Token'
      value = 'myPrivateTokenThatIGenerated'
    }
    authentication {
      header(HttpHeaderAuthentication)
    }
  }
}

dependencies{
 implementation 'de.dependeny.organisation:project-name:0.1.0-SNAPSHOT'
}

我从 Settings->Access Tokens 在源项目中创建了令牌,将其命名为 Private-Token,检查了读取注册表。我也用 read_api 试过了。

我发布的项目的 build.gradle 如下:


repositories {
    mavenCentral()
    maven{
      url "https://gitlab.com/api/v4/projects/MYPROJECTID/packages/maven"
      name "GitLab"
      credentials(HttpHeaderCredentials){
        name = 'Job-Token'
        value = System.getenv("CI_JOB_TOKEN")
      }
      authentication{
        header(HttpHeaderAuthentication)
      }
    }
}


publishing {
    publications {
        maven(MavenPublication) {
            artifactId = 'my-customprojectname'

            artifact sourceJar
            artifact jar
        }
    }
    repositories {
      maven{
        url "https://gitlab.com/api/v4/projects/MYPROJECTID/packages/maven"
        name "GitLab"
        credentials(HttpHeaderCredentials){
          name = "Job-Token"
          value = System.getenv("CI_JOB_TOKEN")
        }
        authentication{
          header(HttpHeaderAuthentication)
        }
      }
    }
}

4

1 回答 1

1

build.gradle 中的链接存储库声明中存在错误。它应该是项目而不是组,并且包名称后没有/-/。它应该像 'https://gitlab.com/api/v4/projects/PROJECT_ID/packages/maven' 而不是'https://gitlab.com/api/v4/groups/MY-GROUP-ID-THAT-I-ENTERED/-/packages/maven'

于 2021-04-16T14:06:53.863 回答