Как сделать модуль Maven не экспортировать банку?
У меня есть сборка Maven с тремя модулями.
- Модуль A экспортирует банку.
- Модуль B зависит от A и экспортирует банку.
- Модуль C представляет собой набор тестов регрессии, которые зависят от A и B.
Причина, по которой регрессионные тесты не являются частью модуля B, заключается в том, что они должны работать против нескольких версий A и B для обеспечения обратной совместимости. Я хочу иметь возможность запускать deploy
из сборки верхнего уровня для создания A.jar и B.jar, но не C.jar. Возможно ли это?
Ответы
Ответ 1
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
Если вам вообще не нужно создавать JAR, вы можете добавить еще два свойства:
<jar.skipIfEmpty>true</jar.skipIfEmpty>
<maven.install.skip>true</maven.install.skip>
Обратите внимание, что вам все еще нужно maven.deploy.skip
, иначе сборка завершится неудачно во время развертывания.
Ответ 2
Плагин развертывания maven включает пропустить параметры, которые предотвращают развертывание артефакта.
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Вы можете попробовать добавить это к проекту C.
Ответ 3
Используйте упаковку типа pom
для C и переустановите все необходимые плагины:
<project>
...
<packaging>pom</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>process-test-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
Ответ 4
Используйте ниже для модуля C:
<packaging>pom</packaging>