【问题标题】:Adding dynamic links to JavaDoc within Maven Site generated html在 Maven 站点生成的 html 中添加到 JavaDoc 的动态链接
【发布时间】:2010-12-07 04:42:34
【问题描述】:

我想知道是否有办法通过 maven 站点插件让它在它生成的 html 中自动创建指向某些 JavaDoc 结构(如类)的链接。

作为我的意思的一个例子,Doxygen 提供了一种通过使用 doxy 协议来做到这一点的方法。您可以像这样创建锚点:

<a href="doxy://class/ExampleClass">ExampleClass</a>

然后,当您运行 Doxygen 时,它会将 doxy:// 引用替换为对包含 ExampleClass 文档的适当 html 文件的引用。这样,如果此类的位置或其文档发生更改,我就不需要记得返回并修复链接,因为 Doxygen 会在下一次构建时自动更改它。

Maven 站点在导航栏中生成并提供指向 JavaDoc 索引的链接,并且 JavaDoc 中有链接到实际源代码的链接,但我希望将我对文档中类的任何引用转换为链接到该类的 JavaDoc,而不必担心如果事情发生变化,它会在未来的版本中保持最新。

这可能吗?还是我被硬编码的链接卡住了?

提前致谢!

【问题讨论】:

  • 我什至不明白这如何与 doxy 一起使用。如果ExampleClass 存在于多个包中怎么办。不使用绝对路径怎么引用呢?
  • 啊,我应该指定的。我们通常将 Doxygen 用于 C++。我相信它可以通过执行 doxy://class/com.company.example.ExampleClass 之类的操作来使用 Java。我们在之前的项目中使用了 Doxygen,该项目几乎完全是 C++ 和一些 java 文件。我们的新版本完全是 Java,我希望使用 Maven Site 来复制功能以及使用其所有内置报告等。

标签: maven-2 javadoc maven-plugin dynamic-links


【解决方案1】:

据我所知,Doxia、Maven 使用的内容生成框架以及任何Doxia Modules 都不支持此功能。所以我想你必须“硬编码”你的链接。

如果您使用 APT,请注意 Doxia-1.1(由 Maven >= 2.1.x 使用)对原始 APT 格式进行了一些增强。关于links

在 Doxia-1.1 中,'local' 的概念 除了引入了链接 内部链接和外部链接。 [...]

  • 本地链接是指向同一站点内另一个文档的链接。 本地链接必须以 要么./要么../区分 它们来自内部链接。例如。

    {{{./apidocs/com/company/example/ExampleClass.html}ExampleClass}}
    

话虽如此,一个解决方案可能是使用 Doxia 中包含的macro mechanisms。但是您必须为此功能编写自己的宏。不过应该不会太难,在源代码库中检查existing code

【讨论】:

  • 谢谢!我创建了一个您在上面建议的宏,它接受一个类并将其转换为指向其 JavaDoc 的链接。但是,我现在看到,由于必须在一个类中包含完整的包信息,就像上面提到的那样,这意味着如果类位置发生变化,我仍然必须更改宏中对类的每个引用,因为它的包将会改变。因此,我相信,除非我能找到一个不变的 java 唯一标识符,否则让宏生成动态链接的唯一好处是,如果每个链接的整体格式都发生了变化,那么我可以只更改宏。
  • 是的,这就是我最初的问题。我可以看到使用宏的优点是您只需编写一次类的完全限定名称(在宏中)。但事实上,如果它发生变化,你仍然需要更新它。
猜你喜欢
  • 1970-01-01
  • 2011-11-10
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多