JMH не работает внутри модуля Java (невозможно найти ресурс: / META-INF / BenchmarkList) - PullRequest
0 голосов
/ 26 декабря 2018

Я взял проект, который использует maven-surefire-plugin (автоматизированные тесты) для запуска тестов JMH и добавил к нему module-info.java.Теперь META-INF/BenchmarkList больше не генерируется (фактически, отсутствует весь каталог), поэтому при запуске тестов возникает следующая ошибка:

ERROR: Unable to find the resource: /META-INF/BenchmarkList

Я подозреваючто Java Modules препятствует нормальной работе процессора аннотаций, но я не могу понять, как это исправить.Есть идеи?

1 Ответ

0 голосов
/ 26 декабря 2018

Я понял это методом проб и ошибок.Это похоже на ошибку (или «фичу») в maven-compiler-plugin 3.8.0.Когда присутствует module-info.java, процессор аннотаций JMH больше не обрабатывается автоматически.Добавление этой конфигурации устранило проблему для меня:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
    [...]
        <annotationProcessorPaths>
            <path>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.version}</version>
            </path>
        </annotationProcessorPaths>
    [...]
    </configuration>
</plugin>

ОБНОВЛЕНИЕ : я подал отчет об ошибке против maven-compiler-plugin.

...