La prueba Java microbenchmark JMH presenta un error RuntimeException: ERROR: No se puede encontrar el recurso: / META-INF / BenchmarkList

Después de citar a JMH, se informó el siguiente error al ejecutar:

/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=61638:/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/kevin/project/javase/target/classes:/Users/kevin/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar:/Users/kevin/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/kevin/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Users/kevin/.m2/repository/org/apache/httpcomponents/httpclient/4.5.1/httpclient-4.5.1.jar:/Users/kevin/.m2/repository/org/apache/httpcomponents/httpcore/4.4.3/httpcore-4.4.3.jar:/Users/kevin/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/Users/kevin/.m2/repository/com/alibaba/fastjson/1.2.31/fastjson-1.2.31.jar:/Users/kevin/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar:/Users/kevin/.m2/repository/com/squareup/okhttp3/okhttp/3.8.1/okhttp-3.8.1.jar:/Users/kevin/.m2/repository/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar:/Users/kevin/.m2/repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar:/Users/kevin/.m2/repository/ojdbc/ojdbc/6/ojdbc-6.jar:/Users/kevin/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/kevin/.m2/repository/redis/clients/jedis/2.9.0/jedis-2.9.0.jar:/Users/kevin/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/kevin/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar:/Users/kevin/.m2/repository/net/coobird/thumbnailator/0.4.8/thumbnailator-0.4.8.jar:/Users/kevin/.m2/repository/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar:/Users/kevin/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/kevin/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.7/jackson-databind-2.9.7.jar:/Users/kevin/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar:/Users/kevin/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar:/Users/kevin/.m2/repository/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar:/Users/kevin/.m2/repository/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar:/Users/kevin/.m2/repository/org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar com.test.java8.LongAdderTest
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.openjdk.jmh.util.Utils (file:/Users/kevin/.m2/repository/org/openjdk/jmh/jmh-core/1.21/jmh-core-1.21.jar) to field java.io.PrintStream.charOut
WARNING: Please consider reporting this to the maintainers of org.openjdk.jmh.util.Utils
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
	at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
	at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:122)
	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:263)
	at org.openjdk.jmh.runner.Runner.run(Runner.java:209)
	at com.test.java8.LongAdderTest.main(LongAdderTest.java:27)

Introducido en pom.xml

<dependency>
    <groupId>org.openjdk.jmh</groupId>
    <artifactId>jmh-core</artifactId>
    <version>1.21</version>
</dependency>
<dependency>
    <groupId>org.openjdk.jmh</groupId>
    <artifactId>jmh-generator-annprocess</artifactId>
    <version>1.21</version>
    <scope>provided</scope>
</dependency>

Debo prestar atención aquí. Mi solución es que se proporciona la etiqueta roja de alcance anterior  . ¡La prueba que completé antes se ha informado como incorrecta!

provided,compile 都是可以的,但是这个包我们在生产中并不需要,一般写provided

El alcance de la prueba significa que el proyecto dependiente solo participa en el trabajo relacionado con la prueba, incluida la compilación y ejecución del código de prueba.

Supongo que te gusta

Origin blog.csdn.net/kevin_mails/article/details/88943881
Recomendado
Clasificación