Как включить утверждения Java в Jetty-maven-plugin?


Как включить утверждения в jetty-maven-plugin? По умолчанию они отключены.

4 5

4 ответа:

Установите переменную окружения MAVEN_OPTS в -ea. Jetty по умолчанию выполняется в рамках процесса Maven и, таким образом, зависит от этой настройки.

Существует также интересная библиотека под названием Force Assertions, которая подключается к процессу компиляции Java 1.6. Во время компиляции все assert cond : detail; прозрачно компилируются в блоки if (!cond) throw new Assertion(detail);, Что означает, что утверждения будут работать всегда, независимо от параметров JVM. Стоит проверить.

Если вы используете Netbeans (протестировано с Netbeans 8.0), это способ сделать это imo:

Добавьте это к вашим nbactions.xml-файл (в корневом каталоге проекта):

<actions>
  <action>
    <actionName>CUSTOM-jetty:run</actionName>
    <displayName>jetty:run</displayName>
    <goals>
        <goal>jetty:run</goal>
    </goals>
    <properties>
        <Env.MAVEN_OPTS>-ea</Env.MAVEN_OPTS>
    </properties>
  </action>
</actions>

Никаких других настроек не требуется. Вы можете просто использовать jetty: run.

См. также https://netbeans.org/bugzilla/show_bug.cgi?id=166874

Если это только для запуска тестов, и вы используете maven-surefire-plugin, используйте этот

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <enableAssertions>true</enableAssertions>
    </configuration>
  </plugin>