У меня есть многомодульный проект Maven, состоящий из двух модулей: module1
и module2
. Их зависимости, которые почти одинаковы, в основном определены в родительском pom.xml
.
module1/
src/...
pom.xml
module2/
src/...
pom.xml
pom.xml
Я изо всех сил пытаюсь создать образ Docker, который позволяет мне запускать module1
и module2
как исполняемые файлы jar, но не копирует зависимости в родительском pom.xml
дважды?
Обновлять
Чтобы ответить на некоторые вопросы в комментариях, я хотел бы создать один образ докера, из которого я могу запускать исполняемые файлы jar для module1
и module2
. Они не зависят ни от одного, ни от другого и выполняются совершенно отдельно. Я хочу создать один образ, так как (конечно?!) он поможет сэкономить место на диске на хосте Docker.
Родитель pom.xml
:
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOST</version>
<packaging>pom</packaging>
<name>parent</parent>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
<dependencies>
...
</dependencies>
module1
иmodule2
в один и тот же док-контейнер? Если да: почему? Если между этими модулями есть зависимость (например, отmodule1
доmodule2
), должно быть достаточно скопировать результат только одного модуля в контейнер. Правильным подходом было бы создать неглубокую банку и скопировать зависимости в отдельный (более ранний) слой в контейнер докера. См., например. как quarkus копирует зависимости. - person Turing85   schedule 25.07.2020-makesymlinks
. Однако это работает только в том случае, если есть файлы, которые являются точными дубликатами. - person Nick ODell   schedule 26.07.2020