I have a multi-module maven project. Parent pom looks like this:
<project>
...
<packaging>pom</packaging>
<modules>
<module>common</module>
<module>a</module>
<module>b</module>
</modules>
</project>
common
builds a jar, which is added as dependency in the other modules, like this:
<dependency>
<groupId>my.project</groupId>
<artifactId>common</artifactId>
<version>${module.common.version}</version>
</dependency>
Modules a
and b
are Spring Boot projects having the spotify docker plugin.
I need to be able to run mvn deploy
in order to get the spotify plugin push the docker image.
mvn install
works fine, which builds the docker images. But in order to push them, when I run mvn deploy
, it throws error for the common
module:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project common: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter
Searching for this error, this answer suggests adding the repository url in the distributionManagement
section. But I don't want to deploy common
. I just want to build it, so it gets injected as dependency in the other modules and deploy those other modules. How can I do that?
I tried to deploy only a
and b
using this command, but it gives the same error for common
:
mvn clean \
-DdockerRegistryHost=123.dkr.ecr.us-west-1.amazonaws.com/test1 \
--projects a,b \
--also-make \
deploy
maven-deploy-plugin
to executions=none? – Han