如何在 init 文件中定义要发布到的 Artifact Registry 存储库?
How to define the Artifact Registry repository to publish to in the init file?
我正在使用 Gradle 将工件部署到 Google 的工件注册表。
通常我会在 build.gradle
文件的“发布”部分中指定要将构建的工件部署到的存储库 - 而不是那样做,我想在 [= =14=] 文件,稍后将在 CI-process 中注入,这样 Artifact Registry 的 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]
The docs state that要使用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
文件中指定要发布到的存储库(或者可能有一种完全不同的方法),那就是非常有帮助!
更新:我找到了让它工作的方法。
我没有指定发布存储库,而是在 init.gradle
文件中定义了一个变量:
allprojects {
ext.repositoryURL = "artifactregistry://random-location.pkg.dev/project-name/repository-name"
}
我后来在构建脚本中使用了它:
publishing {
...
repositories {
maven {
url repositoryURL
}
}
}
这样我以后仍然可以注入 init.gradle
文件以指定注册表 URL.
我正在使用 Gradle 将工件部署到 Google 的工件注册表。
通常我会在 build.gradle
文件的“发布”部分中指定要将构建的工件部署到的存储库 - 而不是那样做,我想在 [= =14=] 文件,稍后将在 CI-process 中注入,这样 Artifact Registry 的 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]
The docs state that要使用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
文件中指定要发布到的存储库(或者可能有一种完全不同的方法),那就是非常有帮助!
更新:我找到了让它工作的方法。
我没有指定发布存储库,而是在 init.gradle
文件中定义了一个变量:
allprojects {
ext.repositoryURL = "artifactregistry://random-location.pkg.dev/project-name/repository-name"
}
我后来在构建脚本中使用了它:
publishing {
...
repositories {
maven {
url repositoryURL
}
}
}
这样我以后仍然可以注入 init.gradle
文件以指定注册表 URL.