Пропустить развертывание Maven для одного модуля

У меня есть мультимодульный проект 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-deploy-plugin: 2.7: deploy (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

1 ответ

Решение

Вы можете достичь того, что вы хотите, настроив 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 в вашей командной строке.

Другие вопросы по тегам