Пропустить развертывание Maven для одного модуля - PullRequest
0 голосов
/ 24 мая 2019

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

1 Ответ

0 голосов
/ 24 мая 2019

Вы можете достичь желаемого, настроив maven-deploy-plugin.

Попробуйте добавить следующее к вашей родительской поме:

<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 в командную строку.

...