JMH无法找到资源:/ META-INF / BenchmarkList [英] JMH Unable to find the resource: /META-INF/BenchmarkList

查看:4417
本文介绍了JMH无法找到资源:/ META-INF / BenchmarkList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不能在eclipse中运行简单的JMH基准。
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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆