配置了 maven-site-plugin 和 maven-javadoc-plugin(使用 doclava doclet)后,我试图在由 mvn site
生成的站点上获取正确的 JavaDocs .在我的代码中,我有几个 JUnit 测试类(位于 src/test/java/my/package/*.java 中),其中 JavaDoc 注释链接源类(位于 src/main/java/my/package/*.java 中) .问题是在生成 Test JavaDocs 时,javadoc 找不到源类文档所在的位置。我试图通过使用 links
告诉 javadoc 在哪里可以找到它和 offlineLinks
maven-javadoc-plugin ( documented here ) 的配置选项,但没有运气。我希望 javadoc 生成相关链接,以便它们在离线查看生成的文档时可用(在浏览器中从/path/to/project/target/site/index.html 浏览)。我不想disable Test JavaDocs generation
My pom.xml | An excerpt from mvn site output
另外,我是 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。在 GenerateATest
测试 JavaDocs 中的文档我想查看指向 PrefixCircuitGenerator
文档的链接在源类 JavaDocs 中。但是,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}
不会改变任何东西。
最佳答案
刚好有时间做实验。似乎 doclava doclet 只是不支持外部文档链接(不实现 -link
命令行选项)。我通过从 CLI 运行 javadoc 发现了它。可能 javadoc 插件知道 -link
选项特定于标准 doclet,因此如果使用替代 doclet,它不会费心从 pom.xml 获取此选项的值并通过命令行参数将其传递给 javadoc。因此不会产生错误。
关于maven - 如何从Maven站点中的Test JavaDoc链接源类JavaDoc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7304132/