Чи існує простий спосіб не будувати тестові класи?
mvn clean install -Dmaven.test.skip=true
Чи існує простий спосіб не будувати тестові класи?
mvn clean install -Dmaven.test.skip=true
Відповіді:
Згідно з документацією щодо плагіна Maven Surefire, -Dmaven.test.skip слід пропустити компіляцію та виконання тестів. На противагу цьому , -DskipTestsтільки пропускає тест виконання : тести з - як і раніше компілюється.
skipTestsпросто пропускає виконання тестів і maven.text.skipпропускає компіляцію та виконання тестів. Я завжди повинен шукати, який є який.
Щоб бути чітко зрозумілим:
skipTests буде компілювати що- небудь у <testSourceDirectory>, але не буде виконувати їх.
maven.test.skipНЕ буде компілювати будь-які тести, але БУДЕ виконувати будь-які скомпільовані тести, які потрапили до <testOutputDirectory>.
Отже, поведінка вищезазначених 2 протилежна. Просто хотів зазначити, що maven.test.skipне пропускає компіляцію І виконання, якщо тестові файли розпаковуються / копіюються / і т.д. в <testOutputDirectory>.
Крім того, залежно від того, яку версію Maven ви використовуєте, існує також maven.test.skip.exec=trueяка додатково пропускає виконання тесту, подібно до skipTests.
mvn clean package -DskipTests=true && mvn test -Dmaven.test.skip=trueбуде компілювати тести (через перше виконання пакета), але не запускати їх у другій команді. Якщо target/test-classesвзяти стандартні каталоги, вони будуть містити всі тести згодом, але вони не були виконані.
Наприклад, запустіть фазу , яка не включає .test-compilecompile
mvn clean compile
Я знайшов обхід в іншому питанні , яке насправді замінює виконання плагіна, додавши наступний фрагмент у ваш 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>
Здається, це працює, але однозначно не відключає фазу, але відключає дії за замовчуванням, які плагін визначає на певній фазі.