Как сделать так, чтобы модуль Maven не экспортировал банку? - PullRequest
14 голосов
/ 06 февраля 2010

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

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

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

Ответы [ 4 ]

8 голосов
/ 29 марта 2010
<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, иначе сборка не удастся во время развертывания.

6 голосов
/ 06 февраля 2010

Плагин развертывания maven включает в себя опции skip , предотвращающие развертывание артефактов.

<plugin>
  <artifactId>maven-deploy-plugin</artifactId>
  <configuration>
      <skip>true</skip>
  </configuration>
</plugin>

Вы можете попробовать добавить это в проект C.

3 голосов
/ 06 февраля 2010

Используйте упаковку типа 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>
2 голосов
/ 06 февраля 2010

Используйте ниже для модуля C:

<packaging>pom</packaging>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...