Как определить репозиторий реестра артефактов для публикации в файле инициализации?
Я использую Gradle для развертывания артефактов в реестре артефактов Google.
Обычно я указываю репозиторий, в котором хочу развернуть построенный артефакт, в разделе «публикация»
build.gradle
file - вместо того, чтобы делать это так, я хотел определить репозиторий в файле, который будет вставлен позже в 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"
}
}
}
Но поскольку мне нужен плагин 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]
указано, В документациичто для использования плагина необходимо вставить следующее:
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
файл (или, может быть, есть совершенно другой способ сделать это), это было бы чрезвычайно полезно!
1 ответ
Обновление: я нашел способ заставить его работать.
Вместо того, чтобы указывать репозиторий публикации, я просто определил переменную в файле:
allprojects {
ext.repositoryURL = "artifactregistry://random-location.pkg.dev/project-name/repository-name"
}
Что я потом использовал в скрипте сборки:
publishing {
...
repositories {
maven {
url repositoryURL
}
}
}
Таким образом, я все еще могу ввести
init.gradle
файл позже, чтобы указать URL-адрес реестра.