如何使用本地 Maven 存储库而不是 google 云的中央 Maven 存储库创建容器映像

How to use local maven repository to create container image instead of central maven repository for google cloud

我正在尝试创建 java 应用程序的容器映像。应用程序的依赖关系在 Jfrog 存储库或我本地的 .m2 文件夹中,而不是在中央。

当我运行按照以下命令构建和上传图像时:

gcloud builds submit --tag gcr.io/[PROJECT-ID]/image-name

它尝试从中央存储库下载不可用的依赖项。我已经将 Maven 的 settings.xml 更改为指向 Jfrog 存储库,但它仍然无法正常工作。我相信它应该首先检查本地 .m2 存储库然后它应该去中央。

任何 explanation/solution 将不胜感激。 TIA

Maven 仅在中心搜索依赖项 repo.If 你想从其他地方下载依赖项你必须将它指定到 pom.xml.

<!-- url_of_project --> <dependency> .... </dependency> 本地 .m2 仓库只首先搜索 SNAPSHOT versions.If 项目不是 SNAPSHOT,首先搜索中央仓库。

要让 Maven 转到 Maven Central 之外的其他地方,请告诉它使用镜像。不幸的是,这不能从命令行完成,但需要使用设置文件来完成。

示例 ~/.m2/settings.xml 用于指向 Nexus 3 实例:

<settings>
    <mirrors>
        <mirror>
            <id>nexus1</id>
            <mirrorOf>external:*</mirrorOf>
            <url>http://nexus/repository/maven-public/</url>
        </mirror>
    </mirrors>
</settings>

请注意,"external:*" 说如果您的源代码树中有您需要 Maven 在本地解析的工件,仍然使用本地文件存储库。