2015-07-13 19 views
13

In meinem Java-Projekt habe ich Klassen generiert, die innerhalb der gleichen Paketordner wie die anderen Klassen sind. Ich möchte jacoco Maven Plugin konfigurieren, dass diese generierten Klassen und nur Nutzungsklassen in der Haupt/src/java-Ordner ausschließen (nicht src/main/java generiert)Ordner in jacoco Berichterstattung ausschließen

Projektstruktur:
src/main/java/com/company/john/Good.java < ---- umfassen diese
src/main/java-generated/com/Unternehmen/john/AutoGeneratedClass.java < ---- diese

<plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.5.201505241946</version> 
      <configuration> 
       <includes> 
       </includes> 
       <excludes> 
        <exclude>**/*Dto.*</exclude> 
       </excludes> 
      </configuration> 
      <executions> 
       <execution> 
        <id>default-prepare-agent</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>default-report</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>default-check</id> 
        <goals> 
         <goal>check</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

ich ausschließen wissen, dass 1 Option ist das Präfix an die generierte Klasse, z _ und benutze dies zum Filtern, aber ich frage mich, ob es eine andere Option gibt. Wie spezifiziert man den Quellprojektordner (src/main/java) und schließt damit alle anderen Ordner aus? Basiert das Plugin nur auf Paketnamen?

Antwort

9

Ich denke, das ist nicht möglich, weil Ihre kompilierten Klassen im Zielverzeichnis in demselben Verzeichnis sind. Und Jacoco benötigt die kompilierten Klassen und daher können Sie keine Quellen filtern.

Sie können Klassen im Jacoco-Bericht durch Festlegen eines Ausschlusspfads ausschließen. Die Werte sollten jedoch den Pfad der kompilierten Klassen relativ zum Verzeichnis target/classes/angeben.

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <configuration> 
     <excludes> 
      <exclude>**/*.class</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

Die beste Lösung wäre, die Klassen in einem bestimmten Paket zu generieren. Aber vielleicht kannst du nicht.

+0

Danke für die Antwort Dämme und für das Zeigen auf das Ziel/Klassen/Verzeichnis – troger19

4

Einfach das folgende tun löste mein Problem des Ignorierens eines Pakets statt der Dateien.

<configuration> 
    <excludes> 
     <exclude>**/basepkg/subpkg1/subpkg2/*</exclude> 
    </excludes> 
</configuration> 
Verwandte Themen