使用javadoc-link选项链接到javadoc.io
我试图使用使用javadoc-link选项链接到javadoc.io,java,javadoc,Java,Javadoc,我试图使用@link选项链接到javadoc.io上托管的一些javadoc(特别是PowerMock的Javadocs)。我试图将PowerMock的Javadocs的URL添加到我的-link标志中,但无法让Javadoc识别它。我使用Gradle作为构建系统,使用到其他Javadoc的外部链接(例如Guava、JavaSE7)。我尝试了以下几种选择: -链接http://static.javadoc.io/org.powermock/powermock-core/1.6.3/ ^我已确认此
@link
选项链接到javadoc.io上托管的一些javadoc(特别是PowerMock的Javadocs)。我试图将PowerMock的Javadocs的URL添加到我的-link
标志中,但无法让Javadoc识别它。我使用Gradle作为构建系统,使用到其他Javadoc的外部链接(例如Guava、JavaSE7)。我尝试了以下几种选择:
-链接http://static.javadoc.io/org.powermock/powermock-core/1.6.3/
^我已确认此目录中有一个包列表
文件
-链接http://static.javadoc.io/org.powermock/powermock-core/
-链接http://javadoc.io/doc/org.powermock/powermock-core/1.6.3/
-链接http://javadoc.io/doc/org.powermock/powermock-core/
所有这些都会导致以下错误(URL相应更改):
javadoc:警告-获取URL时出错:http://static.javadoc.io/org.powermock/powermock-core/1.6.3/
有没有人对如何使这项工作有效提出建议
据我所知,这是某种特定于javadoc.io的问题,尽管可能是我这边的一个使用问题-例如,我目前正在使用
-链接http://junit.org/javadoc/latest/
没有问题,但-链接http://static.javadoc.io/junit/junit/4.12/
不起作用 我最终只是使用了-linkoffline
来解决这个问题,我认为它的优点是在构建时不需要互联网连接,不过如果有人对如何使用-link
实现这一点有进一步的想法,我洗耳恭听 这很奇怪:我可以在浏览器中看到,例如,但当我添加http://static.javadoc.io/org.pegdown/pegdown/1.6.0
如javadoc的链接所示
获取URL时出错:
我使用下一个解决方法:
使用maven依赖插件
unapack所需依赖的javadoc
使用linkoffline
选项链接它
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>unpack-javadoc</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId>
<classifier>javadoc</classifier>
<version>${pegdownVersion}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/pegdown-javadoc</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links>
<link>http://www.slf4j.org/apidocs/</link>
</links>
<offlineLinks>
<offlineLink>
<url>http://static.javadoc.io/org.pegdown/pegdown/${pegdownVersion}</url>
<location>${project.build.directory}/pegdown-javadoc</location>
</offlineLink>
</offlineLinks>
</configuration>
</plugin>
org.apache.maven.plugins
maven依赖插件
2.8
解包javadoc
包裹
打开
org.pegdown
钉住
javadoc
${pegdownVersion}
假的
${project.build.directory}/pegdown javadoc
org.apache.maven.plugins
maven javadoc插件
http://www.slf4j.org/apidocs/
http://static.javadoc.io/org.pegdown/pegdown/${pegdownVersion}
${project.build.directory}/pegdown javadoc
我已经调查了这个问题,这里的问题是必须设置一个用户代理(空字符串是可以的),以便成功完成到javadoc.io的连接
我解决了这个问题,并为那些依赖该构建系统的人撰写了文章
不幸的是,该解决方案无法移植到常规的javadoc-link
命令调用。从命令行使用类似-J-Dhttp.agent=javadoc
的参数
在Maven中,使用类似以下内容:
,问题是用户代理
标题。但是,问题不是一个空的用户代理
,它看起来像“Java/1.8.0\u 112
”:
因此,修复方法是告诉Javadoc使用不同的用户代理。Java不允许您省略用户代理
,因此您必须提供一个值,Java将在其默认代理之前提供该值
据我所知,Javadoc的阻塞并不是故意的:Javadoc只是(可能是不明智的)使用默认的JavaUser Agent
,而Javadoc.io
的内容交付网络默认使用该阻塞
(关于Maven还有一点需要注意:使用-link
一切都很好。如果您下载包列表
文件并告诉Javadoc从磁盘读取,则使用-linkoffline
也很好。但是,如果您使用-linkoffline
但告诉Javadoc从Javadoc.io
URL获取包列表
(这是一件不寻常的事情),。问题是:Maven试图预先验证包列表
文件,但在某些版本的Java中失败,因为它拒绝了javadoc.io
的SSL证书,这是一个javadoc本身接受的证书。)
(哦,使用一个专门来自static.javadoc.io
,而不是javadoc.io
,而不是https
,这似乎很重要。此外,如果http://static.javadoc.io
有一天开始向https://static.javadoc.io
,如Javadoc。另外,https代码>是一件好事:)我正在运行javadoc.io
这是这样报告的,现在已经解决了。不再需要重写用户代理字符串
如果仍无法正常工作,请随时重新打开。此线程未被主动监视
curl -I -A "Java/1.6.0_14" https://static.javadoc.io/org.checkerframework/checker-qual/2.2.2/package-list
HTTP/1.1 200 OK
Date: Mon, 08 Apr 2019 13:06:04 GMT
Content-Type: text/plain
也许运行带有-verbose
选项的javadoc会给出一个提示,出了什么问题。不幸的是,除了:[ERROR][system.err]javadoc:warning-ERROR-fetching URL:http://static.javadoc.io/org.powermock/powermock-core/1.6.3/
访问这些URL(static.javadoc.io
版本)在浏览器中导致访问被拒绝的错误。Javadoc可能也有相同的结果。Javadoc确实尝试访问基本URL吗?您可以访问,而且很好。我也给Javadoc.io联系人发了电子邮件,希望这里的人有经验,因为(AFAIK)Javadoc.io是相当标准的
curl -I -A "Java/1.6.0_14" https://static.javadoc.io/org.checkerframework/checker-qual/2.2.2/package-list
HTTP/1.1 200 OK
Date: Mon, 08 Apr 2019 13:06:04 GMT
Content-Type: text/plain