我正在使用 Gradle 将工件部署到 Google 的工件注册表。
通常我会在文件的“发布”部分指定我想要将构建的工件部署到的存储库build.gradle
- 而不是那样做,我想在init.gradle
稍后在 CI 中注入的文件中定义存储库-过程,以便工件注册表的 URL 不会最终出现在 Git 存储库中。
我想出了一种方法来做到这一点:
allprojects{
buildscript {
repositories {
maven {
url "artifactregistry://random-location.pkg.dev/project-name/repository-name"
}
}
}
repositories {
maven {
url "artifactregistry://random-location.pkg.dev/project-name/repository-name"
}
}
}
但是因为我需要 Artifact Registry Gradle 插件,所以我收到了artifactregistry
不支持协议的错误。
> Could not resolve all dependencies for configuration ':classpath'.
> Not a supported repository protocol 'artifactregistry': valid protocols are [file, http, https, gcs, s3, sftp]
文档说明要在 中使用插件init.gradle
,需要插入以下内容:
initscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.1.1"
}
}
apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin
但我似乎无法让它工作。我一定已经尝试过这两个片段的任何可能组合,但我的知识已经结束了。
如果有人能告诉我如何安排这两个片段,以便我可以在init.gradle
文件中指定要发布到的存储库(或者可能有完全不同的方法),那将非常有帮助!