配置了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)的links
和offlineLinks
配置选项告诉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}
不会改变任何内容。
答案 0 :(得分:0)
只是花了一些时间进行实验。似乎doclava doclet不支持外部文档链接(不实现-link
命令行选项)。我通过从CLI运行javadoc来发现它。可能javadoc插件知道-link
选项特定于标准doclet,因此如果使用替代doclet,它不会从pom.xml获取此选项的值并通过命令行参数将其传递给javadoc 。因此不会产生错误。