2016-06-27 34 views
10

Eclipse内で単純なJMHベンチマークを実行することができません。 Mavenの依存関係:JMHリソースを見つけることができません:/ META-INF/BenchmarkList

 <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コード:

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(); 
    } 
} 

実行の結果:

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)

たぶん問題は、私は日食からそれを実行していること、です。

ありがとうございました。

+0

あなたは日食でそれを実行していないみましたが欠落しているとの問題が発生しましたか?あなたがそれを言いましたので、それを試すのが理にかなっています –

+0

@WillBarnwellまだ... – riva

答えて

5

最後に見つけました。 exec-maven-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> 
関連する問題