如何在maven站点中链接来自Test JavaDoc的源类JavaDoc?

时间:2011-09-05 05:23:00

标签: maven javadoc maven-site-plugin maven-javadoc-plugin

配置了maven-site-plugin和maven-javadoc-plugin(带doclava doclet)之后,我正在尝试在mvn site生成的网站上获取正确的JavaDoc。在我的代码中,我有sevaral JUnit测试类(位于 src / test / java / my / package / * .java ),其中JavaDoc注释链接源类(位于 src / main /的java /我/包/ *。java的)。问题是,在生成Test JavaDocs时,javadoc无法找到源类文档所在的位置。我试图通过使用maven-javadoc-plugin(documented here)的linksofflineLinks配置选项告诉javadoc在哪里找到它,但没有运气。我希望javadoc生成相对链接,以便在离线查看生成的文档时可以使用它们(在浏览器中从 /path/to/project/target/site/index.html 进行浏览)。我不想disable Test JavaDocs generation

My pom.xml | An excerpt from mvn site output

另外,我是Java和Maven新手


为了澄清这个问题,这是一个例子。我有一个位于 src / test / java / name / earshinov / PrefixCircuits / GenerateATest.java 的测试类GenerateATest(对不起,评论是俄语的):

package name.earshinov.PrefixCircuits;
// imports skipped

/**
 * Тестирование алгоритма построения вспомогательных подсетей типа A,
 * реализованного в классе {@link name.earshinov.util.PrefixCircuitGenerator},
 * по отдельным случаям, описанным в оригинальной статье
 */
public class GenerateATest {
// ...

链接的类PrefixCircuitGenerator位于 src / main / java / name / earshinov / PrefixCircuits / PrefixCircuitGenerator.java 中。运行mvn site后,我在 target / site / apidocs / index.html 获取源代码的JavaDocs,并在 target / site / testapidocs / index.html上获取测试JavaDocs 。在Test JavaDocs的GenerateATest文档中,我希望在源类JavaDocs中看到指向PrefixCircuitGenerator文档的链接。但是,javadoc无法找到我引用的PrefixCircuitGenerator,因此它不会生成链接,并且mvn site输出中会显示相应的警告:

[WARNING] /home/eugene/dev/java/PrefixCircuits-maven/src/test/java/name/earshinov/PrefixCircuits/GenerateATest.java:9: warning 101: Unresolved link/see tag "name.earshinov.util.PrefixCircuitGenerator" in name.earshinov.PrefixCircuits.GenerateATest

我的目标是(以某种方式)告诉javadoc如何生成链接。将{@link name.earshinov.PrefixCircuits.PrefixCircuitGenerator}更改为{@link PrefixCircuitGenerator}不会改变任何内容。

1 个答案:

答案 0 :(得分:0)

只是花了一些时间进行实验。似乎doclava doclet不支持外部文档链接(不实现-link命令行选项)。我通过从CLI运行javadoc来发现它。可能javadoc插件知道-link选项特定于标准doclet,因此如果使用替代doclet,它不会从pom.xml获取此选项的值并通过命令行参数将其传递给javadoc 。因此不会产生错误。