Подтвердить что ты не робот

Как сделать модуль Maven не экспортировать банку?

У меня есть сборка Maven с тремя модулями.

  • Модуль A экспортирует банку.
  • Модуль B зависит от A и экспортирует банку.
  • Модуль C представляет собой набор тестов регрессии, которые зависят от A и B.

Причина, по которой регрессионные тесты не являются частью модуля B, заключается в том, что они должны работать против нескольких версий A и B для обеспечения обратной совместимости. Я хочу иметь возможность запускать deploy из сборки верхнего уровня для создания A.jar и B.jar, но не C.jar. Возможно ли это?

4b9b3361

Ответ 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>