java 在Docker构建阶段使用本地m2存储库

rbl8hiat  于 2023-02-14  发布在  Java
关注(0)|答案(2)|浏览(157)

我做了一个Java项目,它使用自己的库,这个库安装在我的本地m2仓库中。我试图创建一个Docker映像,它在构建阶段生成jar。它失败了,因为它不能解析我自己库的项目的依赖项。有什么方法可以告诉maven(从容器)使用我的本地m2存储库(在容器外部),这样它就可以在我运行mvn package

fiei3ece

fiei3ece1#

答案很简单-你不能,因为没有办法为docker build命令挂载卷。
我假设您的最终目标是运行一个包含项目构建的jar或war的Docker映像。
要实现这一点,您需要两个Dockerfile-一个可用于创建将构建项目并退出的容器,另一个将描述您实际需要的映像-一个可用于创建运行项目的容器。
有一篇很好的文章描述了如何创建和使用第一个here,至于第二个,那取决于你的项目是构建为jar还是war,以及它需要如何启动/部署。

gt0wga4j

gt0wga4j2#

管理存储库(包括专用存储库)的方法有两种:
1.(老方法)将编译好的库复制到项目的lib目录,并确保项目拾取它。
1.我使用一些存储库管理软件。好的选择是- Artifactory https://jfrog.com/artifactory或Nexus存储库管理-https://www.sonatype.com/product-nexus-repository

相关问题