我正在尝试从Eclipse内部运行JMH基准测试。这是一个Maven(m2e)项目,pom.xml
包含正确的依赖项(jmh-core
和jmh-generator-annprocess
,v1.9.3),项目在Eclipse中编译,基准测试可以在命令行上运行通过mvn clean install
和java -jar target/benchmarks.jar
。但是,当我尝试从Eclipse运行samples之一( Run As> Java Application )时,我收到以下错误:
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:96)
at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:104)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:251)
at org.openjdk.jmh.runner.Runner.run(Runner.java:203)
at example.JMHSample_01_HelloWorld.main(JMHSample_01_HelloWorld.java:100)
在项目属性中启用了注释处理。文件/META-INF/BenchmarkList
由maven构建创建,但不是由Eclipse构建创建。为什么呢?
更新
关于JMH和Eclipse有another question,但它是关于一个非常古老的JMH版本和一个不同的错误消息。我想了解这个问题的原因,即未处理的注释或未找到生成的代码等。