4

配置了 maven-site-plugin 和 maven-javadoc-plugin (使用doclava doclet)后,我试图在由mvn site. 在我的代码中,我有几个 JUnit 测试类(位于src/test/java/my/package/*.java),其中 JavaDoc 注释链接源类(位于src/main/java/my/package/*.java) . 问题是在生成 Test JavaDocs 时,javadoc 找不到源类文档所在的位置。我试图通过使用maven-javadoc-plugin 的配置选项来告诉 javadoc 在哪里找到它(links在此处记录offlineLinks),但没有运气。我希望 javadoc 生成相对链接,以便它们在离线查看生成的文档时可用(在浏览器中从/path/to/project/target/site/index.html浏览)。我不想禁用测试 JavaDocs 生成

我的 pom.xml | mvn 站点输出的摘录

另外,我是 Java 和 Maven 新手


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

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 的文档中,我希望看到指向源类 JavaDocs 文档的链接。但是,javadoc 找不到我所指的,因此它不会生成链接,并且相应的警告在输出中可见:GenerateATestPrefixCircuitGeneratorPrefixCircuitGeneratormvn 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}不会改变任何内容。

4

1 回答 1

0

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

于 2011-09-05T22:00:31.893 回答