2017-08-30 2 views
0

Ich habe dieses Stück in meinem pom.xmlWarum erzeugt Clover nicht JSON aus meiner pom.xml-Konfiguration?

<pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.3.2</version> 
     </plugin> 
     <plugin> 
      <groupId>com.atlassian.maven.plugins</groupId> 
      <artifactId>clover-maven-plugin</artifactId> 
      <version>4.1.2</version> 
      <configuration> 
       <generateJson>true</generateJson> 
       <generateXml>true</generateXml> 
       <generateHtml>true</generateHtml> 
       <generatePdf>true</generatePdf> 
      </configuration> 
     </plugin> 
    </plugins> 
</pluginManagement> 

Ich weiß PDF & JSON standardmäßig auf false. Die anderen sind standardmäßig auf true eingestellt.

Irgendwie, wenn ich dies tue, erzeuge ich HTML, XML und sogar das PDF. JSON ist nirgendwo zu finden. Es sagt sogar Generating JSON report to: /example/myrepo/target/site/clover, wie es für das XML tut. Wenn ich in diesen Ordner gehe, sehe ich clover.pdf und clover.xml. Nr. clover.json.

Wenn ich das folgende mache, sagt es komischerweise No report being generated for this module. und dann Generating JSON report to: /example/myrepo/target/site/clover.

<configuration> 
    <generateJson>true</generateJson> 
    <generateXml>false</generateXml> 
    <generateHtml>false</generateHtml> 
    <generatePdf>false</generatePdf> 
</configuration> 

Wenn ich dies tun, es geht zurück Berichte zu erzeugen, nur „gut“ (in diesem Beispiel wird nur die XML erstellen, kein HTML). Immer noch kein JSON

<configuration> 
    <generateJson>true</generateJson> 
    <generateXml>true</generateXml> 
    <generateHtml>false</generateHtml> 
    <generatePdf>false</generatePdf> 
</configuration> 

Voll config (mit einigen Dingen getauscht Anon zu bleiben)

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.yaml</groupId> 
      <artifactId>snakeyaml</artifactId> 
      <version>1.18</version> 
     </dependency> 
     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-core</artifactId> 
      <version>1.10.19</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hamcrest</groupId> 
      <artifactId>hamcrest-all</artifactId> 
      <version>1.3</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <parent> 
     <groupId>org.jenkins-ci.plugins</groupId> 
     <artifactId>plugin</artifactId> 
     <version>1.583</version> 
     <relativePath /> 
    </parent> 
    <groupId>com.mynamespace</groupId> 
    <artifactId>myartifactid</artifactId> 
    <version>1.1.3</version> 
    <packaging>hpi</packaging> 

    <name>Test</name> 
    <description>Test</description> 
    <url>https://wiki.jenkins-ci.org/display/JENKINS/TODO+Plugin</url> 
    <licenses> 
     <license> 
      <name>MIT License</name> 
      <url>http://opensource.org/licenses/MIT</url> 
     </license> 
    </licenses> 
    <build> 
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> 
     <testResources> 
      <testResource> 
       <directory>src/test/resources</directory> 
      </testResource> 
     </testResources> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-release-plugin</artifactId> 
        <version>2.3.2</version> 
       </plugin> 
       <plugin> 
        <groupId>com.atlassian.maven.plugins</groupId> 
        <artifactId>clover-maven-plugin</artifactId> 
        <version>4.1.2</version> 
        <configuration> 
         <generateJson>true</generateJson> 
         <generateXml>true</generateXml> 
         <generateHtml>false</generateHtml> 
         <generatePdf>false</generatePdf> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 

    <repositories> 
     <repository> 
      <id>repo.jenkins-ci.org</id> 
      <url>http://repo.jenkins-ci.org/public/</url> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>repo.jenkins-ci.org</id> 
      <url>http://repo.jenkins-ci.org/public/</url> 
     </pluginRepository> 
    </pluginRepositories> 

</project> 

aktualisieren I java -Dclover.license.path=/Users/dstein/Desktop/clover.lic -cp "/Users/dstein/.m2/repository/com/atlassian/clover/clover/4.1.2/*" com.atlassian.clover.reporters.json.JSONReporter -i target/clover/clover.db -o clover_json -d

lief

Es ist mein Ordner erzeugt und eine Menge von JS Dateien warf drin. Diese Dateien haben manchmal JSON ..., sind aber in etwas eingebettet, das wie JSONP aussieht, weil es wie processClover({}) aussieht. Ist das erwartetes Verhalten? Ist die Tatsache, dass sie JSON nennen, falsch?

+0

Sind Sie sicher, diese Plugin-Konfiguration an das Modul zu vererben, bei dem die Generierung erwartet wird? Könnten Sie die Hierarchie Ihrer Module teilen und erklären, wo der JSON nicht erzeugt wird? – nullpointer

+0

Ich bin in der Lage, die HTML und XML zu deaktivieren, sowie PDF aktivieren, also würde nicht beweisen, dass es diese Konfiguration richtig erbt? Ich sehe es nicht in dem Ordner, den Clover sagt, dass es auf "Ziel/Standort/Klee" erzeugt, wo die anderen Generationen sitzen. –

+0

* in der Lage, die HTML und XML zu deaktivieren, sowie PDF aktivieren, so würde das nicht beweisen * es wäre, die Frage hat es nicht gelesen. Könnten Sie auch ein minimales Projekt teilen, um dies zu reproduzieren? – nullpointer

Antwort

0

Es scheint, dass diese Funktion JSONP hätte heißen sollen.

The docs zeigen, dass es alle JS-Dateien ausgeben soll, die von einem Callback auf einer Webseite konsumiert werden sollen. Es ist nicht zum Parsen gedacht, wie Sie es mit XML tun können.

Verwandte Themen