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

Posted

技术标签:

【中文标题】错误:使用 gradle 运行 JMH 时无法找到资源:/META-INF/BenchmarkList【英文标题】:ERROR: Unable to find the resource: /META-INF/BenchmarkList when running JMH with gradle 【发布时间】:2017-12-08 05:59:37 【问题描述】:

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

但是每当我运行应用程序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.

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

知道我错过了什么。

【问题讨论】:

您的回购链接已失效。如果解决了,可以分享一下吗? @BingLi224 - 我更新了 repo。 【参考方案1】:

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

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

旁边

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

【讨论】:

【参考方案2】:

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

annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.33'

就像龙目岛

【讨论】:

欢迎来到 Stack Overflow!虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的答案以添加解释并说明适用的限制和假设。 “就像龙目岛一样”是不够的。还有***.com/editing-help 请在您的答案中添加一些解释,以便其他人可以从中学习【参考方案3】:

尝试不使用 gradle 守护进程运行:

gradle --stop
gradle --no-daemon jmh

【讨论】:

对我来说结果相同。【参考方案4】:

不确定您的项目设置如何,因为我在您的存储库中找不到 com.demo.aerospike.JMHAerospikeSpringData。也许你想看看这个项目来尝试一些想法。

https://github.com/eugenp/tutorials/blob/master/core-java-modules/core-java-collections-maps-3/src/main/java/com/baeldung/map/concurrenthashmap/MapPerformanceComparison.java

【讨论】:

以上是关于错误:使用 gradle 运行 JMH 时无法找到资源:/META-INF/BenchmarkList的主要内容,如果未能解决你的问题,请参考以下文章

Gradle android无法找到符号Context

错误:无法找到带有 Gradle 路径“:capacitor-cordova-android-plugins”的模块

Gradle(包装器)+ STS + Spring Boot:错误:无法找到或加载主类 1.1,

Flutter 收到错误“错误:无法找到或加载主类 org.gradle.wrapper.GradleWrapperMain”

Gradle 在使用 Proguard 编译发布版本时无法找到一些引用和库类

Gradle 无法安装 - Gradlew InstallDebug 失败插件,ID 为“...”未找到