java微基准测试JMH引入报错RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList

在我引用JMH后,运行的时候报了一个如下的错误:

/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)

在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>

这里一定我注意,我解决的办法是上面的标红的scope 标签是provided 之前我填写的test一直报错!

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

scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行

猜你喜欢

转载自blog.csdn.net/kevin_mails/article/details/88943881