如何使Maven构建(目标站点)失败Javadoc警告?

时间:2016-07-01 11:01:30

标签: java maven javadoc maven-site-plugin maven-javadoc-plugin

我正在使用目标site构建我的Maven项目。输出中有Javadoc警告。 在这种情况下,我的Maven构建必须失败。有没有办法做到这一点?

以下是我的POM的代码片段(我正在使用Maven 3.3):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.5</version>
    <configuration>
        <generateReports>true</generateReports>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.3</version>
    <configuration>
        <show>private</show>
        <failOnError>true</failOnError>
    </configuration>
</plugin>

3 个答案:

答案 0 :(得分:2)

maven-javadoc-plugin无法配置为在构建警告时失败(仅在参数为failOnError的错误时)。

您真正想要的是使用maven-checkstyle插件。这是负责检查您的代码是否符合给定预定义样式的插件。在这种情况下,样式是Javadoc必须存在且不得有警告。因此,配置Checkstyle插件如下:

<plugin>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.17</version>
    <reportSets>
        <reportSet>
            <reports>
                <report>checkstyle</report>
            </reports>
        </reportSet>
    </reportSets>
    <configuration>
        <failsOnError>true</failsOnError>
        <configLocation>checkstyle.xml</configLocation>
    </configuration>
</plugin>

引用checkstyle.xml(相对于项目基目录)。要检查Javadoc,您可以使用以下简单的checkstyle配置文件:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">
    <module name="TreeWalker">
        <module name="JavadocMethod"/>
        <module name="JavadocType"/>
        <module name="JavadocVariable"/>
        <module name="JavadocStyle"/>
    </module>
</module>

这将使任何Javadoc警告的构建失败。 Javadoc模块are highly configurable;上面的示例配置将检查Javadoc及其正确性,每种方法,每种类型和每个变量。

例如,您可以通过将scope属性设置为JavadocMethodJavadocVariable模块,将其限制为仅public种方法和public字段:

<module name="JavadocMethod">
    <property name="scope" value="public"/>
</module>
<module name="JavadocVariable">
    <property name="scope" value="public"/>
</module>

答案 1 :(得分:1)

为此,您应该使用类似Sonarqube的内容。这里没有理由将其作为CI的一部分进行检查。所以,这是SonarQube的工作,但是如果你想在Jenkinse中查看一些内容,你可以尝试使用Text Finder Plugin for Jenkinse。然后你可以设置包含java doc警告的任何uniqeu部分的字符串,然后你的构建将被降级。

答案 2 :(得分:1)

如果您在构建元素中对maven-javadoc-plugin使用以下代码段,那么即使是警告也会自动失败。

<executions>
    <execution>
        <id>attach-javadocs</id>
        <goals>
            <goal>jar</goal>
        </goals>
    </execution>
</executions>
相关问题