如何将图像包含到 javadoc 中并引用它们
How to include images into javadoc and reference them
我检查了 manual of javadoc and read some posts here on Whosebug (for example Including images in javadocs) 但无法得到满意的结果
我想在我的 javadoc 中提供一个图像,它应该与创建的 html 打包在一起。以下是我采取的步骤:
- 在
src/main/java
下创建一个doc-files
目录(这是STS中的一个gradle项目)
- 将名为
classhierarchy.png
的文件放入新创建的目录中
- 将
<img src="doc-files/classhierarchy.png">
添加到我的 class de.company.some.more.levels.MyClass
的 javadoc
- 创建 javadoc
我可以看到 png 文件被复制到 C:\temp\NameOfProject\doc\doc-files 但无法显示,因为 img-link 是相对于包的:
c:/temp/NameOfProject/doc/de/company/some/more/levels/doc-files/classhierarchy.png
我知道我可以通过在路径前加上许多 /../../ 来解决这个问题,但如果包深度发生变化,我将不得不调整它:
<img src="../../../../../../doc-files/classhierarchy.png">
我不喜欢的第二件事是目录 doc-files 与我的源代码位于同一路径。
怎样才能link优雅地提供图片?
通常图像胜于雄辩。但是 classhierarchy 可以更改而不影响图像本身。也许您使用其他文档技术,例如 maven 的站点。
你的情况是黑白图像吗?也许你最好使用 ascii-art.
小图片也可以像这样内联使用:
/**
* Foobar.<br />
* <img src=
* "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAAAXNSR0IArs4c6QAAAA
* RnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADTSURBVFhH7c9BCsNADEPR3P9aPVjr5KukOBAEnkI
* WejtDR/ndnuu9Qu28FqEqWR6qkuWhKlkeqpLloSpZHqqS5aEqWR6qkuWhKlkeqv6S1c5717c7Dc/Ujla/uzoM7feci
* 7PYLJwOPWgLGp6pnd8PFL7h0IPDeWp4RlsLaXimdq7/26QHh/PU8EzttG9wOvSgLWh4pnYYLczqMLTfc67PKu28d32
* 70/BM7Wh1jKpkeahKloeqZHmoSpaHqmR5qEqWh6pkeahKloeqZHmoemrW42zbB+06mptY9nu7AAAAAElFTkSuQmCC" />
*/
我至少可以为丰富的“..”提供解决方案。
而不是写:
<img src="../../../../../../doc-files/classhierarchy.png">
我们可以使用:
<img src="{@docRoot}/doc-files/classhierarchy.png">
这将指示 javadoc 插入“..”本身,这样我就不必指望自己 ;-) 并且我不必在包结构发生变化时调整“..”。
参数@docroot
可以在代码和命令行中使用,详见the docs
在我的测试中,它与生成的 html 一起工作,并且存在于 Eclipse 中。
我检查了 manual of javadoc and read some posts here on Whosebug (for example Including images in javadocs) 但无法得到满意的结果
我想在我的 javadoc 中提供一个图像,它应该与创建的 html 打包在一起。以下是我采取的步骤:
- 在
src/main/java
下创建一个doc-files
目录(这是STS中的一个gradle项目) - 将名为
classhierarchy.png
的文件放入新创建的目录中 - 将
<img src="doc-files/classhierarchy.png">
添加到我的 classde.company.some.more.levels.MyClass
的 javadoc
- 创建 javadoc
我可以看到 png 文件被复制到 C:\temp\NameOfProject\doc\doc-files 但无法显示,因为 img-link 是相对于包的: c:/temp/NameOfProject/doc/de/company/some/more/levels/doc-files/classhierarchy.png
我知道我可以通过在路径前加上许多 /../../ 来解决这个问题,但如果包深度发生变化,我将不得不调整它:
<img src="../../../../../../doc-files/classhierarchy.png">
我不喜欢的第二件事是目录 doc-files 与我的源代码位于同一路径。
怎样才能link优雅地提供图片?
通常图像胜于雄辩。但是 classhierarchy 可以更改而不影响图像本身。也许您使用其他文档技术,例如 maven 的站点。
你的情况是黑白图像吗?也许你最好使用 ascii-art.
小图片也可以像这样内联使用:
/**
* Foobar.<br />
* <img src=
* "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAAAXNSR0IArs4c6QAAAA
* RnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADTSURBVFhH7c9BCsNADEPR3P9aPVjr5KukOBAEnkI
* WejtDR/ndnuu9Qu28FqEqWR6qkuWhKlkeqpLloSpZHqqS5aEqWR6qkuWhKlkeqv6S1c5717c7Dc/Ujla/uzoM7feci
* 7PYLJwOPWgLGp6pnd8PFL7h0IPDeWp4RlsLaXimdq7/26QHh/PU8EzttG9wOvSgLWh4pnYYLczqMLTfc67PKu28d32
* 70/BM7Wh1jKpkeahKloeqZHmoSpaHqmR5qEqWh6pkeahKloeqZHmoemrW42zbB+06mptY9nu7AAAAAElFTkSuQmCC" />
*/
我至少可以为丰富的“..”提供解决方案。 而不是写:
<img src="../../../../../../doc-files/classhierarchy.png">
我们可以使用:
<img src="{@docRoot}/doc-files/classhierarchy.png">
这将指示 javadoc 插入“..”本身,这样我就不必指望自己 ;-) 并且我不必在包结构发生变化时调整“..”。
参数@docroot
可以在代码和命令行中使用,详见the docs
在我的测试中,它与生成的 html 一起工作,并且存在于 Eclipse 中。