繁体   English   中英

Docker 多模块 Maven 构建 - 将所有 POM 文件复制到适当的目录

[英]Docker Multimodule Maven Build - Copy All POM Files to Appropriate Directories

我正在尝试为我的多模块项目构建 maven Dockerize。 我有一个嵌套文件结构,其中我的项目的所有模块都包含在 modules/ 目录中。 作为构建的一部分,我想缓存依赖项,因此容器不需要拉取依赖项,除非更新 POM 文件(即 Java 更改不应该每次都需要拉取依赖项)。 我目前通过对每个文件使用单独的 Docker 命令将每个 POM 复制到构建容器中的适当目录来进行此工作; 但是,我目前大约有 10 个模块,将来可能会添加更多。 我想避免在添加模块时单独复制每个 POM。 我看到 COPY 支持源文件参数的通配符语法,但根本无法使其正常工作。 我目前拥有的命令是:

COPY modules/*/pom.xml ./

但这似乎没有正确复制。 我确信有一种方法可以复制这些文件,而不必为每个文件指定一个命令。 执行此操作的正确命令是什么? 非常感谢您的帮助!

在构建特定模块时是否需要构建所有同级模块? 如果没有,我的解决方案是仅复制所需的 POM,然后在将其复制到容器中后更改父pom.xml

RUN mv pom.xml pom.xml.org
RUN cat pom.xml.org | grep -vP '<module>(?!my-commons|my-module)' >> pom.xml
RUN mvn -pl my-commons,my-module dependency:go-offline

通过从父级中删除其他模块引用,您可以构建您的项目,就好像它只有所需的模块一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM