Je ne parviens pas à exécuter de simples tests de performances JMH dans Eclipse. Dépendances Maven:
<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>
Code 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();
}
}
Résultat de l'exécution:
Exception dans le fil "main" Java.lang.RuntimeException: ERREUR: impossible de trouver la ressource:/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.Runner.Runner.internalRun (Runner.Java : 256) à l'adresse Org.openjdk.jmh.runner.Runner.run (Runner.Java:206) à Avec.test.BTest.main (BTest.Java:24)
Peut-être que le problème est que je l’utilise à partir d’Eclipse.
Merci pour toute aide.
Finalement découvert. Il y avait un problème avec le plugin manquant 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>
J'ai réalisé que j'avais déjà exec-maven-plugin
dans mon pom parent, comme mentionné dans la réponse attendue, mais je devais exécuter mvn clean install
comme indiqué dans https://stackoverflow.com/a/40748670 pour corriger l'erreur.
Ayant eu la même erreur; et exécuter les tests de maven ou intellij ne fonctionnait pas. J'ai réalisé que le problème était que j'avais écrit la référence en Kotlin. Changer le code en Java a réglé le problème.