在脱机模式下配置javadoc链接以链接到本地​​副本

时间:2017-09-04 14:06:08

标签: java maven javadoc maven-javadoc-plugin

如何在离线模式下创建链接到本地​​文件系统中文件的javadoc?

我正在为java包构建javadocs,并希望外部包(包括java.lang)的链接指向本地副本。这可以通过设置links属性来实现:

<configuration>
  <links>
    <link>/usr/share/doc/default-jdk-doc/api/</link>
  </links>
</configuration>

但是,离线工作时会忽略links属性,即使是 链接到javadocs的本地副本。我的理解是,在这种情况下,我应该使用offlineLinks,但我无法使其发挥作用。

我在offlineLinks看到的所有文档都将url设置为外部URL,将location设置为本地文件。用例似乎是通过使用本地副本创建到外部服务器的链接。我试图将urllocation设置为相同的值,但这似乎被忽略了。

<offlineLinks>
  <offlineLink>
    <url>/usr/share/doc/default-jdk-doc/api/</url>
    <location>/usr/share/doc/default-jdk-doc/api/</location>
  </offlineLink>
</offlineLinks>

我创建了一个最小的例子github gist,我这样称呼:

mvn --offline javadoc:javadoc

它有一个包含String参数的包和方法。我希望javadocs创建一个指向文档本地副本的链接,但我不断将String链接到docs.oracle.com

1 个答案:

答案 0 :(得分:0)

javadoc程序将正确处理-links选项,即使它是本地目录并且没有没有Internet连接也没有。问题是maven javadoc插件在离线模式下忽略links属性。解决方案是通过additionalparam属性将该选项直接传递给javadoc程序,如下所示:

<configuration>
  <additionalparam>-link /usr/share/doc/default-jdk-doc/api/</additionalparam>
</configuration>

这有两个问题:

  1. 如果链接到许多不同的包,它会变得太长。理论上,应该能够在单个-link参数中传递多个additionalparam选项。
  2. 不推荐使用additionalparam。但是,没有其他maven属性可以直接传递javadoc选项,所以希望它们不会实际删除它。
  3. 映射到命令行选项offlineLinks-linkoffline属性似乎确实需要外部URL。我不确定这是javadoc程序或maven javadoc插件中的要求。