Пропустить развертывание 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
в вашей командной строке.