Dim*_*tri 9 gradle gitlab gitlab-ci gradle-kotlin-dsl
我正在尝试在 gitlab 包注册表上发布一些 jar 人工制品,但我从服务器收到此错误:
Received status code 415 from server: Unsupported Media Type
Run Code Online (Sandbox Code Playgroud)
这是我的 build.gradle.kts 的发布部分:
publishing {
publications {
create<MavenPublication>("maven"){
artifact(tasks["bootJar"])
}
}
repositories {
maven {
url = uri("https://gitlab.com/api/v4/groups/my-group/-/packages/maven")
name = "Gitlab"
credentials(HttpHeaderCredentials::class) {
name = "Token"
value = System.getenv("CI_JOB_TOKEN")
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 gitlab-ci 中,我添加了一个发布人工制品的任务:
deploy:
stage: deploy
script: gradle publish
only:
- master
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
Jan*_*Jan 18
将指向 group-scope 的发布 url 替换为指向 specific-package-repository 的 url,例如gitlab.com:
https://gitlab.com/api/v4/projects/<your-project-id>/packages/maven
当然,您需要替换<your-project-id>为您的特定项目 ID。
与此相关的引用来自docs.gitlab:
注意:在所有情况下,您都需要一个项目特定的 URL 来上传 distributionManagement 部分中的包。
或者换句话说:只有常规存储库部分可以使用您的组 URL 来搜索其他已发布的工件!(我也必须明白这一点)。所以:
repositories {
mavenCenter()
jcenter()
// Here you USE the group api/v4 url for SEARCHING packages
maven {
name = "GitLab"
url = uri("https://gitlab.com/api/v4/groups/my-group/-/packages/maven")
credentials(HttpHeaderCredentials::class) {
name = "Job-Token"
value = System.getenv("CI_JOB_TOKEN")
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
publishing {
publications {
create<MavenPublication>("maven"){
artifact(tasks["bootJar"])
}
}
repositories {
maven {
// here your PROVIDE the PROJECT-URI for publishing your package
// in the project-specific package-space which is also visible at
// the group scope above
url = uri("https://gitlab.com/api/v4/projects/<your-project-id>/packages/maven")
name = "Gitlab"
credentials(HttpHeaderCredentials::class) {
name = "Job-Token"
value = System.getenv("CI_JOB_TOKEN")
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于如何与 GitLab 上的 maven-repository-space 进行交互有多种方案。这三个开关是:
https://.../api/v4/projects/<project-id>/packages/maven)| 归档时间: |
|
| 查看次数: |
2222 次 |
| 最近记录: |