如何从多个Maven项目构建容器

时间:2018-09-15 19:25:00

标签: maven ibm-cloud

我正在创建一个微服务,以使用Docker和Kubernetes部署在云上。这需要来自不在任何公共存储库上的多个Maven Java项目中的代码。例如,microservice项目对analytics项目具有依赖性,而model项目对microservice项目具有依赖性。这些项目的POM之间没有继承关系。在本地,microservice Maven项目使用本地Maven信息库中已有的工件成功构建。但是,当我尝试从analytics项目构建容器时,它失败了,因为docker构建中的Maven在容器的Maven存储库中找不到modelmodel jars。

使analytics和{{1}}项目可用于映像构建,以便构建docker映像的最佳选择是什么?

1 个答案:

答案 0 :(得分:0)

因此docker中的构建看不到仅安装在本地Maven中的工件。如果它们在逻辑上可以放在一起(即只一起使用过),那么将它们组合成具有单个父pom的单个多模块Maven构建是有意义的。听起来这可能是您的情况。

否则,您最好的选择是:

1托管docker当前在公共存储库中看不到的工件。如果您有联系,可以使用,可以将其安装在此处。

2在docker外部构建jar并将其复制到其中。这意味着对dockerfile进行更改,并有效地在构建过程中执行了Maven pre-docker步骤。

3 2的变体,但将Maven和docker步骤与Maven插件结合在一起。例如,您可以使用Spotify docker Maven插件。