Java 在docker构建阶段使用本地m2存储库

Java 在docker构建阶段使用本地m2存储库,java,docker,maven,dependencies,Java,Docker,Maven,Dependencies,我制作了一个Java项目,它使用自己的库,安装在我本地的m2存储库中。现在,我试图创建一个Docker映像,在构建阶段生成jar。它失败是因为它无法解析我自己的库的项目的依赖项。有没有办法告诉maven(来自容器)使用我的本地m2存储库(容器外部),这样当我运行mvn package时,它就可以解决我的库依赖关系?简单的回答-你不能,因为没有办法为docker build命令装载卷 我假设您的最终目标是运行一个Docker映像,其中包含您的项目的构建jar或war 要实现这一点,您需要两个Doc

我制作了一个Java项目,它使用自己的库,安装在我本地的m2存储库中。现在,我试图创建一个Docker映像,在构建阶段生成jar。它失败是因为它无法解析我自己的库的项目的依赖项。有没有办法告诉maven(来自容器)使用我的本地m2存储库(容器外部),这样当我运行
mvn package
时,它就可以解决我的库依赖关系?

简单的回答-你不能,因为没有办法为
docker build
命令装载卷

我假设您的最终目标是运行一个Docker映像,其中包含您的项目的构建jar或war

要实现这一点,您需要两个DockerFile—一个可用于创建将构建项目并退出的容器,另一个可用于描述实际需要的映像—一个可用于创建运行项目的容器

有一篇很好的文章描述了如何创建和使用第一个。作为
对于第二种,这取决于您的项目是作为ja还是war构建的,以及它需要如何启动/部署。

有两种管理库(包括专用库)的方法:

  • (旧方法)将编译后的库复制到projectlib目录,并确保您的项目将其选中

  • 使用一些存储库管理软件。好的选择是-Artifactory或Nexus存储库管理-