Non riesco a generare rapporti AHP tramite JaCoCo in uno dei miei moduli. Quando la costruzione inizia, vedo JaCoCo impostando correttamente argLine con:JaCoCo non genera jacoco.exec fino a dopo aver ignorato l'esecuzione di JaCoCo
[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
Tuttavia, la .exec non è stato ancora creato per il momento in Maven cerca di correre JaCoCo:
[INFO] Skipping JaCoCo execution due to missing execution data file:<...>/target/jacoco.exec
Il jacoco. exec viene finalmente creato, dopo che Maven ha saltato l'esecuzione di JaCoCo. Pertanto, posso ancora generare rapporti AHP, se rieseguo la compilazione senza eseguire la pulizia.
Ho visto in varie altre domande che devo fare attenzione a usare Maven Surefire con JaCoCo. Tuttavia, non uso esplicitamente argLine nei miei plugin Surefire o in qualsiasi altro plugin. Sto iniziando a chiedermi se uno degli altri plug-in sta violando il parametro argLine automaticamente come fa JaCoCo.
Ecco un elenco di tutti i plugin utilizzati:
- jacoco-maven-plugin
- VertX-maven-plugin
- Maven-risorse-plugin
- Maven-dipendenza-plugin
- maven-surefire-plugin
- maven-failsafe-plugin
- maven-surefire-report -plugin
- Maven-assemblaggio-plugin
faccio vedere uno messaggio sospetto nell'output di generazione:
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ <module> ---
[INFO] Changes detected - recompiling the module!
non sono sicuro se questo è rilevante, ma sembra due volte prima del Salto messaggio, e non appare in un modulo in cui JaCoCo funziona correttamente.
Qualche idea?
* modifica - Ecco la 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>
non sono sicuro esattamente quello che parte di gestione plug-in sta facendo, ma commentando fuori non risolvere nulla. Ho anche provato a mettere la configurazione del plugin JaCoCo sopra la configurazione surefire/failsafe nel caso in cui l'ordine fosse importante per i plug-in che condividevano gli stessi obiettivi, ma questo non è stato d'aiuto.
* modifica 2 - Sembra che il problema includesse surefire. Commentando in qualche modo la versione di Exec di JaCoCo, JaCoCo funziona correttamente.
<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>
Qualcuno sa perché?
penso u sono problemi nel ciclo di vita, spettacolo pom configurazione jacoco-plugin –
@question_maven_com Aggiunto –