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

11

我想使用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.

我在其他stackoverflow中尝试了不同的解决方案,但都没能帮助我。

有什么想法我错过了什么吗?


你的代码库链接已经失效了。如果修复了,能否分享一下新链接? - BingLi224
@BingLi224 - 我更新了代码库。 - Rajkumar Natarajan
4个回答

6

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

testAnnotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:$jmhVersion"

next to

testImplementation "org.openjdk.jmh:jmh-core:$jmhVersion"

3

实现 'org.openjdk.jmh:jmh-core:1.33'

注释处理器 'org.openjdk.jmh:jmh-generator-annprocess:1.33'

就像 lombok 一样


2
欢迎来到Stack Overflow!虽然这段代码可能解决了问题,但是包括解释它如何以及为什么解决了问题将有助于提高您的帖子质量,并可能导致更多的赞。请记住,您正在回答未来读者的问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。"就像lombok一样"是不够的。还有https://stackoverflow.com/editing-help。 - Yunnosch
请在您的答案中添加一些解释,以便其他人可以从中学习。 - Nico Haase

0

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

gradle --stop
gradle --no-daemon jmh

1
对我来说结果也一样。 - Eduardo

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接