JMH无法找到资源:/ META-INF / BenchmarkList [英] JMH Unable to find the resource: /META-INF/BenchmarkList
问题描述
Maven依赖关系:
<依赖关系>
< groupId> org.openjdk.jmh< / groupId>
< artifactId> jmh-core< / artifactId>
< version> 1.12< / version>
< / dependency>
<依赖关系>
< groupId> org.openjdk.jmh< / groupId>
< artifactId> jmh-generator-annprocess< / artifactId>
< version> 1.12< / version>
< / dependency>
Java代码
public class BTest {
@Benchmark
public void test(){
// todo
}
public static void main(String [] args)throws RunnerException {
选项opt = new OptionsBuilder()
.include(BTest.class.getSimpleName())
.build() ;
new Runner(opt).run();
}
}
运行结果
线程main中的异常java.lang.RuntimeException:ERROR:Unable
查找资源:/ META-INF / BenchmarkList
org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:96)
在org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:104)
在org.openjdk.jmh.runner.Runner.internalRun(Runner.java:256)at
org.openjdk.jmh.runner.Runner.run(Runner.java:206)at
com .test.BTest.main(BTest.java:24)
也许问题是,我从eclipse运行它。
感谢任何帮助。
终于找到了。
有一个问题,缺少 exec-maven-plugin
插件
<插件>
< groupId> org.codehaus.mojo< / groupId>
< artifactId> exec-maven-plugin< / artifactId>
<执行>
< execution>
< id>运行基准< / id>
< phase> integration-test< / phase>
< goals>
< goal> exec< / goal>
< / goals>
< configuration>
< classpathScope> test< / classpathScope>
< executable> java< / executable>
< arguments>
< argument> -classpath< / argument>
< classpath />
< argument> org.openjdk.jmh.Main< / argument>
< argument>。*< / argument>
< / arguments>
< / configuration>
< / execution>
< / executions>
< / plugin>
I'm not able to run simple JMH benchmark inside eclipse. Maven dependencies:
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.12</version>
</dependency>
Java code:
public class BTest {
@Benchmark
public void test() {
// todo
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(BTest.class.getSimpleName())
.build();
new Runner(opt).run();
}
}
Result of run:
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:256) at org.openjdk.jmh.runner.Runner.run(Runner.java:206) at com.test.BTest.main(BTest.java:24)
Maybe the problem is, that I'm running it from eclipse.
Thanks for any help.
Finally found it out.
There was a problem with missing exec-maven-plugin
plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>run-benchmarks</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>org.openjdk.jmh.Main</argument>
<argument>.*</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
这篇关于JMH无法找到资源:/ META-INF / BenchmarkList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!