您会很快意识到JDK8在Javadoc方面要严格得多(默认情况下)。(链接
-请参阅最后一个要点)
如果您从不生成任何Javadoc,那么您当然不会遇到任何问题,但是Maven发布过程之类的内容以及您的CI构建可能会突然失败,因为它们在JDK7上可以正常使用。现在,任何检查Javadoc工具的退出值的操作都将失败。warnings
与JDK7相比,JDK8
Javadoc可能也更冗长,但这不是这里的范围。我们正在谈论errors
!
存在此问题是为了收集有关如何处理的建议。最好的方法是什么?这些错误是否应该在源代码文件中一劳永逸地解决?如果您有庞大的代码库,则可能需要大量工作。还有哪些其他选择?
也欢迎您评论以前失败的失败案例。
wsimport
该工具是用于创建Web服务使用者的代码生成器。它包含在JDK中。即使您使用wsimport
JDK8中的工具,它仍然会产生无法使用JDK8中的javadoc编译器进行编译的源代码。
我正在打开3-4岁的源代码文件,并看到以下内容:
/**
* My very best class
* @author John <john.doe@mine.com>
*/
现在由于<字符而失败。严格来说,这是合理的,但不是很宽容。
您的Javadoc中的HTML表?考虑以下有效的HTML:
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
现在,此操作将失败,并显示错误消息no summary or caption for table
。一种快速的解决方法是这样做:
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
但是为什么这一定是Javadoc工具引起的世界性错误呢?
{@link notexist}
always returns <code>true<code> if ...
链接:
Stephen
Colebourne撰写的关于该主题的优秀博客。
目前,我知道 使用Maven时解决更严格的Java 8 Javadoc 的最简单方法是停用它。
由于该参数-Xdoclint:none
仅在Java8中存在,因此定义此参数会破坏其他Java的构建。为防止这种情况,我们可以创建一个仅对Java8才有效的配置文件,以确保我们的解决方案无论Java版本如何都可以使用。
<profiles>
<profile>
<id>disable-java8-doclint</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
</profile>
</profiles>
只需将其添加到您的POM中就可以了。
更换
<additionalparam>-Xdoclint:none</additionalparam>
通过
<doclint>none</doclint>
谢谢@banterCZ!
您很快就会意识到,JDK8在Javadoc方面要严格得多(默认情况下)。(链接-参见最后一个项目符号) 如果您从未生成任何Javadoc,那么您当然不会遇到任何问题,但是像Maven发布流程这样的事情,可能还有您的CI构建,在使用JDK7时会突然失败。检查Javadoc工具的exit值的任何操作现在都将失败。与JDK7相比,JDK8 Javadoc在方面可能也更冗长,但这不是本文的范围。我们正在讨
问题内容: 我已经开始探索Node.js,并编写了许多演示Web应用程序,以了解Node.js,Express.js,jade等的流程。 但是我最近遇到的一件事是,该语句作为每个函数和每个文件中的第一行。 Node.js对它的解释如何? 问题答案: 基本上,它启用严格模式。 严格模式是一项功能,使您可以在“严格”的操作环境中放置程序或功能。在严格的操作上下文中,方法窗体像以前一样将此绑定到对象。函
我尝试使用以下模式解析日期字符串:和解析器,如下所示: 我得到以下: 谁能帮忙吗?
问题内容: SimpleDateFormat是一种非常友好的解析器,它滚动结果日期而不是抛出错误。如何在没有正则表达式等的情况下严格解析日期? 问题答案: 是您要寻找的。
在我的java代码中,我试图使用HTMLUnit库来收获一个网页。我的代码很简单,如下所示, 但是,一旦我运行代码,它就会产生以下异常:
Values.java AmountDetail.java 当我在postman if子句中点击API时,它工作正常,但如果我想检查else,它会给出错误。我觉得铸造是这里的问题,但我不知道如何返回else块的值。