2

我有一个 maven Artifact Registry,并且能够在 pom.xml 中添加依赖项并获取 jar。

我有另一个用例,我只想使用 CLI 下载 jar,您可以使用其他外部 maven 存储库轻松完成这些操作,例如curl https://repo1.maven.org/maven2/org/apache/iceberg/iceberg-spark-runtime/0.7.0-incubating/iceberg-spark-runtime-0.7.0-incubating.jar --output temp.jar

我没有看到有关如何执行此操作的任何说明。

4

2 回答 2

0

我也需要这个。我已经按照gcp 指南配置了一个服务帐户

然后,我执行了以下命令来获取 authbasic credz :

gcloud artifacts print-settings gradle \
    [--project=PROJECT] \
    [--repository=REPOSITORY] \
    [--location=LOCATION] \
    --json-key=KEY-FILE \
    [--version-policy=VERSION-POLICY] \
    [--allow-snapshot-overwrites]

在输出中,您有 artifactRegistryMavenSecret。

最后你得到你的工件:

curl -L -u _json_key_base64:{{ artifactRegistryMavenSecret }} https://{{ region }}-maven.pkg.dev/{{ projectId }}/{{ repository }}/path/of/artifact/module/{{ version }}/app-{{ version }}.jar -o file.jar
于 2022-02-28T17:53:46.020 回答
0

基于此开放功能请求(此功能请求当前没有 ETA),Artifact Registry 似乎尚不存在上述功能。但是,您可以尝试实现云构建自动化,不仅将构建的工件保存在 Artifact Registry 中,还可以将它们存储在 Google Cloud Storage 或其他存储库中;因此您可以轻松访问 JAR(因为 Cloud Storage 支持直接下载)。

为此,您需要Cloud Build 与 Artifact Registry 集成。文档页面包含使用 Maven 项目与 Cloud Build 和 Artifact Registry 的说明。此外,您可以配置 Cloud Build 以将构建的工件存储在 Cloud Storage中。

这两种集成都是通过Cloud Build 配置文件进行配置的。在此文件中,定义了构建项目的步骤,包括与其他无服务器服务的集成。这种集成将涉及定义一个目标 Maven 存储库:

steps:
- name: gcr.io/cloud-builders/mvn
  args: ['deploy']

以及将工件部署到 Cloud Storage 的位置:

artifacts:
  objects:
    location: [STORAGE_LOCATION]
    paths: [[ARTIFACT_PATH],[ARTIFACT_PATH], ...]
于 2021-10-27T19:43:45.953 回答