为什么 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.pdfclover.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.