Maven-пропустить построение тестовых классов


есть ли простой способ не создавать тестовые классы?

mvn clean install -Dmaven.test.skip=true

Уолтер

5   51   2010-04-07 19:10:18

5 ответов:

по словам документация на плагине maven Surefire,-Dmaven.test.skipдолжны пропустить компиляцию и выполнение тестов. Напротив,-DskipTests просто пропускает тест исполнение: тесты все еще компилируется.

просто чтобы было ясно:

skipTestsбудет составлять ничего <testSourceDirectory>, а не будет выполнять них.

maven.test.skip будет не компилируется любые тесты, но выполняет любые скомпилированные тесты, которые пробились в <testOutputDirectory>.

таким образом, поведение выше 2 противоположно. Просто хотел отметить, что maven.test.skip не пропускает компиляцию и выполнение, если тестовые файлы распакованный / скопированный / etc. в <testOutputDirectory>.

кроме того, в зависимости от того, какую версию Maven вы используете, есть также maven.test.skip.exec=true, который дополнительно пропускает выполнение теста похоже на скиптесты.

запустить этап это не включает test-compile, например compile.

mvn clean compile

Я не эксперт в maven, но то, что я использую в моем текущем проекте:

mvn clean install -DskipTests=true

в зависимости от вашего варианта использования с помощью:

mvn compile -DskipTests=true

может работать для вас тоже.

Я нашел обходной путь в другом вопрос, который фактически переопределяет выполнение плагина, добавляя следующий фрагмент в ваш pom.XML по умолчанию:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <executions>
        <execution>
          <id>default-testCompile</id>
          <phase>none</phase>
        </execution>
      </executions>
   </plugin>
  </plugins>
</build>

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