У меня есть мультимодульный проект Maven. Родительский пом выглядит так:
<project>
...
<packaging>pom</packaging>
<modules>
<module>common</module>
<module>a</module>
<module>b</module>
</modules>
</project>
common
создает jar-файл, который добавляется как зависимость в другие модули, например:
<dependency>
<groupId>my.project</groupId>
<artifactId>common</artifactId>
<version>${module.common.version}</version>
</dependency>
Модули a
и b
- это проекты Spring Boot, имеющие подключаемый модуль spotify docker .
Мне нужно иметь возможность запустить mvn deploy
, чтобы плагин spotify выдвинул образ докера.
mvn install
отлично работает, что создает образы докера. Но чтобы их подтолкнуть, при запуске mvn deploy
выдается ошибка для модуля common
:
[ОШИБКА] Не удалось выполнить цель
org.apache.maven.plugins: Maven-плагин-развертывания: 2.7: развернуть
(default-deploy) в общем проекте: Ошибка развертывания: хранилище
элемент не был указан в POM внутри distributionManagement
элемент или в -DaltDeploymentRepository = id :: layout :: url параметр
В поисках этой ошибки в этом ответе предлагает добавить URL-адрес хранилища в разделе distributionManagement
. Но я не хочу развертывать common
. Я просто хочу построить его, чтобы он внедрялся как зависимость в другие модули и развертывал эти другие модули. Как я могу это сделать?
Я пытался развернуть только a
и b
с помощью этой команды, но она выдает ту же ошибку для common
:
mvn clean \
-DdockerRegistryHost=123.dkr.ecr.us-west-1.amazonaws.com/test1 \
--projects a,b \
--also-make \
deploy