从 Java 9 升级到 10 后,使用 Javadoc 工具生成文档时(例如,对于导入文件),指向 JDK 的链接不再起作用java.util.Optional
, {@link Optional}
呈现为Optional
而不是作为Optional https://docs.oracle.com/javase/10/docs/api/java/util/Optional.html;同样的问题与@see
, @param
, @return
,以及您通常看到 Javadoc 链接的其他任何地方)。
我有一个简单的模块化项目,我正在使用 Maven 和 Javadoc 插件(source
and target
选项设置为10
in the configuration
编译器插件部分)。我的理解是默认情况下它会通过-link https://docs.oracle.com/javase/10/docs/api/
到 Javadoc 工具。据我所知,从历史上看,Javadoc 工具需要一个名为package-list
出现在被告知查找外部文档的 URL 上。爪哇8has one https://docs.oracle.com/javase/8/docs/api/package-list。爪哇9has one https://docs.oracle.com/javase/9/docs/api/package-list。爪哇10does not https://docs.oracle.com/javase/10/docs/api/package-list(404 错误)。显然,Javadoc 工具现在输出一个名为element-list
代替package-list
对于模块化项目,但看起来是这样的未提供 https://docs.oracle.com/javase/10/docs/api/element-list要么(也不为Java 9 https://docs.oracle.com/javase/9/docs/api/element-list,但它可用于早期访问版本Java 11 https://download.java.net/java/early_access/jdk11/docs/api/element-list).
通过 IntelliJ 使用选项生成 JavadocLink to JDK documentation
启用会产生相同的结果。它说它正在过去-link https://docs.oracle.com/javase/10/docs/api/
to javadoc.exe
,它报告javadoc: error - Error fetching URL: https://docs.oracle.com/javase/10/docs/api/
。尽管出现错误,但它确实输出了 Javadoc,但与 Maven 一样,不存在 JDK 链接。
这应该如何运作? Oracle 将 JDK 文档放到网上时是否搞砸了?
我的相关部分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"