Пользовательский профиль Maven2 для тестирования - PullRequest
1 голос
/ 20 января 2010

Я хочу создать собственный профиль для в своем файле Maven2 pom.xml, чтобы изолировать связанные с тестом зависимости и настройки, используя плагин surefire, но документация несколько смущает. В конечном счете, я не хочу, чтобы junit / etc входил в пакет производственного развертывания.

У кого-нибудь есть пример, который поможет мне начать?

Ответы [ 2 ]

3 голосов
/ 21 января 2010

Вам не нужен профиль для этого (я имею в виду, если вы действительно хотите использовать профиль, вы можете, но вам это не нужно). Maven имеет встроенную функцию, которая позволяет ограничивать транзитивность зависимости, а также влияет на путь к классам, используемый для различных задач сборки . Эта функция называется Область зависимостей , и это то, что написано в документации о тесте область действия:

Эта область указывает, что зависимость не требуется для обычного использования приложения и доступна только для фаз компиляции и выполнения теста.

Итак, если вы хотите использовать зависимость на этапе тестирования, но не хотите, чтобы она была упакована в конечный артефакт, просто объявите ее с областью тестирования:

<project>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>group-a</groupId>
      <artifactId>artifact-b</artifactId>
      <version>1.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
3 голосов
/ 20 января 2010

Это довольно просто. Объявите зависимость junit следующим образом:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.0</version>
      <type>jar</type>
      <scope>test</scope>
      <optional>true</optional>
</dependency>

Область действия гарантирует, что библиотека junit не появится в пакете развертывания. И вы не увидите тестовые классы в производственных пакетах, если maven найдет исходные коды в папке src/test/java

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