java.util.Optional
的文件,{@link Optional}
显示为Optional
而不是Optional
;在@see
、@param
、@return
和任何其他通常看到Javadoc链接的地方也存在相同的问题),从Java 9升级到10后,与JDK的链接不再起作用。我有一个简单的模块化项目,我正在使用带有Javadoc插件的Maven(在编译器插件的
configuration
部分中将source
和target
选项设置为10
)。据我了解,它默认会将-link https://docs.oracle.com/javase/10/docs/api/
传递给Javadoc工具。我还知道,历史上,Javadoc工具期望在告诉它查找外部文档的URL处存在名为package-list
的文本文件。Java 8 有一个。Java 9 有一个。 Java 10 没有(404错误)。 显然,对于模块化项目,Javadoc工具现在输出名为element-list
而不是package-list
的文本文件,但似乎element-list
也没有提供(对于Java 9也是如此,但它可用于Java 11的早期访问版本中)。启用IntelliJ选项
Link to JDK documentation
生成Javadoc会产生相同的结果。它说正在将-link https://docs.oracle.com/javase/10/docs/api/
传递给javadoc.exe
,并报告javadoc: error - Error fetching URL: https://docs.oracle.com/javase/10/docs/api/
。尽管存在错误,它仍会输出Javadoc,但与Maven一样,没有JDK链接。这应该如何工作?当他们将JDK文档在线发布时,Oracle出了问题吗?
我的
pom.xml
的相关部分:<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>10</source>
<target>10</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.1</version> <!--update dependency for Java 10 compatibility-->
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
mvn -version
的输出结果:
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T12:49:05-07:00)
Maven home: C:\Program Files\apache-maven-3.5.3\bin\..
Java version: 10, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-10
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
mvn clean test javadoc:javadoc
(我有一些JUnit 5测试,并且我正在使用Maven Surefire插件的2.19.1版本)。没有异常,构建成功。对我来说,mvn clean package
也很好用。我已经将mvn -version
的输出添加到问题底部。 - gdejohn3.0.1-SNAPSHOT
版本的maven-javadoc-plugin进行测试,也不包含10的package-list
。我的一些直觉一直在提醒我并指向删除旧标准doclet可能会影响插件。 - Naman