I have this bit in my pom.xml
<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>
I know PDF & JSON default to false. The others default to true.
Somehow when I do this, I generate HTML, XML, and even the PDF. JSON is nowhere to be found. It even says Generating JSON report to: /example/myrepo/target/site/clover
, as it does for the XML. When I go to that folder I see clover.pdf
and clover.xml
. No clover.json
.
If I do the following, it strangely says No report being generated for this module.
and then Generating JSON report to: /example/myrepo/target/site/clover
.
<configuration>
<generateJson>true</generateJson>
<generateXml>false</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
If I do this, it goes back to generating reports just "fine" (this example will just create the XML, no HTML). Still no JSON
<configuration>
<generateJson>true</generateJson>
<generateXml>true</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
Full config (with some things swapped to stay anon)
<?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>
Update
I ran 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
It generated my folder and threw a lot of JS files in it. Those files sometimes have JSON... but are wrapped in what looks like JSONP cause it will be like processClover({})
. Is this expected behavior? Is the fact they call it JSON a misnomer?
It would seem that this feature should have been called JSONP.
The docs show that it is meant to output all those JS files to be consumed by a callback on a webpage. It's not meant to be used for parsing, as you can do with the XML.