跳过Maven部署一个模块

时间:2019-05-24 01:42:29

标签: java maven spring-boot docker spotify-docker-client

我有一个多模块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>

模块ab是具有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。我只想构建它,以便将它作为依赖项注入到其他模块中并部署这些其他模块。我该怎么办?

我尝试使用此命令仅部署ab,但对于common却给出了相同的错误:

mvn clean \
   -DdockerRegistryHost=123.dkr.ecr.us-west-1.amazonaws.com/test1 \
   --projects a,b \
   --also-make \
   deploy

1 个答案:

答案 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