为什么 clover 没有从我的 pom.xml 配置中生成 JSON?
Why isn't clover generating JSON from my pom.xml config?
我的 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>
我知道 PDF 和 JSON 默认为 false。其他默认为真。
不知何故,当我这样做时,我生成了 HTML、XML,甚至是 PDF。 JSON 无处可寻。它甚至说 Generating JSON report to: /example/myrepo/target/site/clover
,就像 XML 一样。当我转到该文件夹时,我看到 clover.pdf
和 clover.xml
。没有clover.json
.
如果我执行以下操作,它 st运行gely 说 No report being generated for this module.
然后 Generating JSON report to: /example/myrepo/target/site/clover
。
<configuration>
<generateJson>true</generateJson>
<generateXml>false</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
如果我这样做,它会返回生成报告 "fine"(此示例将只创建 XML,不会创建 HTML)。还是没有JSON
<configuration>
<generateJson>true</generateJson>
<generateXml>true</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
完整配置(交换了一些东西以保持匿名)
<?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>
更新
我运行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
它生成了我的文件夹并在里面扔了很多 JS 文件。这些文件有时有 JSON... 但包裹在看起来像 JSONP 的东西中,因为它会像 processClover({})
。这是预期的行为吗?他们称它为 JSON 是用词不当吗?
看来这个功能应该叫做JSONP。
The docs 表明它旨在输出所有这些 JS 文件以供网页上的回调使用。它并不意味着用于解析,您可以使用 XML.
我的 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>
我知道 PDF 和 JSON 默认为 false。其他默认为真。
不知何故,当我这样做时,我生成了 HTML、XML,甚至是 PDF。 JSON 无处可寻。它甚至说 Generating JSON report to: /example/myrepo/target/site/clover
,就像 XML 一样。当我转到该文件夹时,我看到 clover.pdf
和 clover.xml
。没有clover.json
.
如果我执行以下操作,它 st运行gely 说 No report being generated for this module.
然后 Generating JSON report to: /example/myrepo/target/site/clover
。
<configuration>
<generateJson>true</generateJson>
<generateXml>false</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
如果我这样做,它会返回生成报告 "fine"(此示例将只创建 XML,不会创建 HTML)。还是没有JSON
<configuration>
<generateJson>true</generateJson>
<generateXml>true</generateXml>
<generateHtml>false</generateHtml>
<generatePdf>false</generatePdf>
</configuration>
完整配置(交换了一些东西以保持匿名)
<?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>
更新
我运行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
它生成了我的文件夹并在里面扔了很多 JS 文件。这些文件有时有 JSON... 但包裹在看起来像 JSONP 的东西中,因为它会像 processClover({})
。这是预期的行为吗?他们称它为 JSON 是用词不当吗?
看来这个功能应该叫做JSONP。
The docs 表明它旨在输出所有这些 JS 文件以供网页上的回调使用。它并不意味着用于解析,您可以使用 XML.