Ich habe Probleme bei der Generierung von AHP-Berichten über JaCoCo in einem meiner Module. Wenn der Build beginnt, sehe ich JaCoCo richtig argLine mit der Einstellung:JaCoCo erzeugt jacoco.exec erst nach dem Überspringen der JaCoCo-Ausführung
[INFO] jacoco.agent.argLine set to -javaagent:<...>/.m2/repository/org/jacoco/org.jacoco.agent/0.7.2.201409121644/org.jacoco.agent-0.7.2.201409121644-runtime.jar=destfile=<...>/target/jacoco.exec
Allerdings hat die .exec nicht durch die Zeit Maven versucht erstellt wurde noch JaCoCo auszuführen:
[INFO] Skipping JaCoCo execution due to missing execution data file:<...>/target/jacoco.exec
Die jacoco. exec wird schließlich erstellt, nachdem Maven die Ausführung von JaCoCo übersprungen hat. Daher kann ich immer noch AHP-Berichte generieren, wenn ich den Build ohne Reinigung erneut starte.
Ich habe in verschiedenen anderen Fragen gesehen, dass ich mit Maven Surefire mit JaCoCo vorsichtig sein muss. Allerdings verwende ich argLine nicht explizit in meinen Surefire-Plugins oder in irgendeinem Plugin für diese Angelegenheit. Ich beginne mich zu fragen, ob eines der anderen Plugins den Parameter argLine automatisch kapert, wie es JaCoCo tut. Hier
ist eine Liste aller Plugins verwendet:
- jacoco-Maven-Plugin
- VertX-Maven-Plugin
- Maven-Ressourcen-Plugin
- Maven-Abhängigkeit-Plugin
- maven-surefire-plugin
- maven-failsafe-plugin
- maven-todefire-bericht -plugin
- Maven-Montage-Plugin
ich eine verdächtige Nachricht in der Build-Ausgabe sehen:
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ <module> ---
[INFO] Changes detected - recompiling the module!
Ich bin nicht sicher, ob das ist relevant, aber es scheint, zweimal vor dem Skipping Nachricht und erscheint nicht in einem Modul, in dem JaCoCo ordnungsgemäß funktioniert.
Irgendwelche Ideen?
* edit - Hier ist die jacoco Config
<plugins>
<...>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jacoco</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<versionRange>
[0.7.2.201409121644,)
</versionRange>
<goals>
<goal>prepare-agent</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Ich bin nicht sicher genau das, was der Plugin-Management-Teil tut, aber es nicht aus behebt nichts zu kommentieren. Ich habe auch versucht, die JaCoCo-Plugin-Konfiguration über die todsichere/fehlersichere Konfiguration zu setzen, falls die Reihenfolge für Plugins wichtig ist, die die gleichen Ziele teilen, aber das hat auch nicht geholfen.
* bearbeiten 2 - Sieht so aus, als ob das Problem von todsicheren enthält. Wenn Sie sie auskommentieren, wird die JaCoCo-Generierung von .exec korrigiert und JaCoCo funktioniert ordnungsgemäß.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<!-- <includes>
<include>**/unit/**/*Test*.java</include>
</includes> -->
</configuration>
</plugin>
Wer weiß warum?
ich denke, u sind Problem in Lifecycle, zeigen pom jacoco-Plugin-Konfiguration –
@question_maven_com Hinzugefügt –