错误:使用 gradle 运行 JMH 时无法找到资源:/META-INF/BenchmarkList

Raj*_*jan 8 gradle jmh

我想使用 JMH 对我的应用程序进行基准测试。我正在使用带有 gradle 的 JMH 作为构建工具。github 存储库在这里

但是每当我运行该应用程序时com.demo.aerospike.JMHAerospikeSpringData,都会出现以下错误。

$ gradle run

> Configure project :
Task :jmh Last added: null

> Task :run
JMHAerospikeSpringData is running ...
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:256)
    at org.openjdk.jmh.runner.Runner.run(Runner.java:206)
    at com.demo.aerospike.JMHAerospikeSpringData.main(JMHAerospikeSpringData.java:47)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':run'.
> Process 'command 
'/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

我在其他 stackoverflow 中尝试了不同的解决方案,但无济于事。

知道我错过了什么。

Ada*_*lík 6

我通过将此依赖项添加到我的项目中解决了这个问题:

testAnnotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:$jmhVersion"
Run Code Online (Sandbox Code Playgroud)

旁边

testImplementation "org.openjdk.jmh:jmh-core:$jmhVersion"
Run Code Online (Sandbox Code Playgroud)


小智 0

尝试在没有 gradle 守护进程的情况下运行:

gradle --stop
gradle --no-daemon jmh
Run Code Online (Sandbox Code Playgroud)