我有一个多模块Maven项目。父pom看起来像这样:
<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
是具有spotify docker plugin的Spring Boot项目。
我需要能够运行mvn deploy
才能使Spotify插件推送Docker映像。
mvn install
工作正常,可以构建docker映像。但是为了推送它们,当我运行mvn deploy
时,它会为common
模块抛出错误:
[错误]无法执行目标 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (默认部署)项目通用:部署失败:信息库 没有在distributionManagement内部的POM中指定元素 元素或-DaltDeploymentRepository = id :: layout :: url参数
搜索此错误时,this answer建议在distributionManagement
部分中添加存储库URL。但是我不想部署common
。我只想构建它,以便将它作为依赖项注入到其他模块中并部署这些其他模块。我该怎么办?
我尝试使用此命令仅部署a
和b
,但对于common
却给出了相同的错误:
mvn clean \
-DdockerRegistryHost=123.dkr.ecr.us-west-1.amazonaws.com/test1 \
--projects a,b \
--also-make \
deploy
答案 0 :(得分:0)
您可以通过配置maven-deploy-plugin
完成所需的操作。
尝试将以下内容添加到您的父pom:
<build>
...
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
...
</build>
或在您的命令行中添加-Dmaven.deploy.skip=true
。