Lombok Maven javadoc:使用生成的源代码生成聚合报告

34

我有一个使用Maven构建的多模块Java项目,希望使用生成Java文档。 项目结构如下:

parent
├─lomboklib
└─other

我还在项目中使用 Project Lombok 自动生成一些方法。首先,我使用Lombok Maven插件运行Delombok,成功地将其配置为与单个模块(lomboklib)一起使用。这将生成源代码。

target/generated-sources/delombok

这些内容随后由maven-javadoc-pluginjavadoc工具处理。原问题在此SO问题中解决。

如何配置javadoc:aggregate报告以使用生成的源代码?

我已经在Github上放置了包含所有模块定义的问题沙盒。理想情况下,我应该能够运行以下命令:

mvn clean compile javadoc:aggregate

在父项目中,编译整个项目并获取整个项目的javadocs。

很好的问题。在一个使用 lombok 的数十个模块的项目中遇到了同样的问题。你希望有一种方法可以覆盖 javadoc:aggregate 递归遍历模型时查找的子目录。我们正在使用 @Ben M. 提供的 hacky 解决方案,它正在工作。 - Sodved
3个回答

3
我创建了一个解决方案的构建配置,将从生成的源代码中创建聚合的Javadoc。虽然调用序列有两个步骤:
mvn package
mvn -N pre-site

构建配置现在已发布在Github上。当前版本仅支持深度为1的项目树,但可以进行修改。该配置通过收集父目录下的依赖项,并运行包含的Ant脚本来完成。如果在Jenkins下运行,则可以通过Execute shell后续步骤,在同一个任务中调用mvn -N pre-site来执行。在我们的Jenkins版本中发布javadocs需要使用后置构建操作"Use publishers from another project"。

2

我遇到了同样的问题,通过直接从父项目引用源路径,我已经能够解决它。

尝试使用以下配置来配置您的父POM的Maven-javadoc-plugin。

<configuration>
    <sourcepath>
        lomboklib/target/generated-sources/delombok;
        other/target/generated-sources/delombok
    </sourcepath>
</configuration>

这真的不是理想的情况。感觉有点像一个技巧。


2

我从Github下载了示例项目以重现您的问题,并发现顶级pom中不必要地配置了,它仅在包含lombok代码的模块中需要。只需删除该配置,就会按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接