带有生成源的 Lombok Maven javadoc:aggregate 报告
Lombok Maven javadoc:aggregate report with generated sources
我有一个用 Maven 构建的多模块 java 项目,我想用 javadoc:aggregate
生成 java 文档。项目结构如下:
parent
├─lomboklib
└─other
我也在用Project Lombok to generate some methods in the project. I have successfully configured it to work with single modules by first running delombok with the Lombok maven plugin。对于单个模块 (lomboklib),这将在
中生成源代码
target/generated-sources/delombok
然后由 maven-javadoc-plugin 和 javadoc 工具处理。这最初是在 This SO question.
中解决的
如何配置 javadoc:aggregate
报告也使用生成的来源?
我已经在 Github 中为所有模块定义设置了一个问题沙箱。理想情况下,我应该能够 运行
mvn clean compile javadoc:aggregate
在父项目中,编译整个项目并获取整个项目的java文档。
我从 Github 下载了示例项目来重现您的问题,发现这是因为 lombok-maven-plugin
在顶级 pom 中被不必要地配置了——只有模块需要它包含龙目岛代码。通过简单地删除该配置,javadoc:aggregate
的行为符合预期。
我遇到了同样的问题,我已经能够通过直接从父项目引用源路径来解决这个问题。
为您的父 pom 的 maven-javadoc-plugin 尝试此配置。
<configuration>
<sourcepath>
lomboklib/target/generated-sources/delombok;
other/target/generated-sources/delombok
</sourcepath>
</configuration>
确实不太理想。感觉有点hack。
我创建了一个解决方法构建配置,它将从生成的源中创建聚合的 javadoc,尽管调用序列有两个步骤:
mvn package
mvn -N pre-site
构建配置现已在 Github 中发布。当前版本只支持深度为一的项目树,当然可以修改。它通过在父 target
目录下收集依赖项然后 运行 包含的 Ant 脚本来工作。
最后,如果运行在Jenkins下,可以通过Executeshell[=26=在同一个作业中调用mvn -N pre-site
] 步。在我们的 Jenkins 版本中发布 javadoc 需要使用 post-build 操作“使用来自另一个项目的发布者”。
我有一个用 Maven 构建的多模块 java 项目,我想用 javadoc:aggregate
生成 java 文档。项目结构如下:
parent
├─lomboklib
└─other
我也在用Project Lombok to generate some methods in the project. I have successfully configured it to work with single modules by first running delombok with the Lombok maven plugin。对于单个模块 (lomboklib),这将在
中生成源代码target/generated-sources/delombok
然后由 maven-javadoc-plugin 和 javadoc 工具处理。这最初是在 This SO question.
中解决的如何配置 javadoc:aggregate
报告也使用生成的来源?
我已经在 Github 中为所有模块定义设置了一个问题沙箱。理想情况下,我应该能够 运行
mvn clean compile javadoc:aggregate
在父项目中,编译整个项目并获取整个项目的java文档。
我从 Github 下载了示例项目来重现您的问题,发现这是因为 lombok-maven-plugin
在顶级 pom 中被不必要地配置了——只有模块需要它包含龙目岛代码。通过简单地删除该配置,javadoc:aggregate
的行为符合预期。
我遇到了同样的问题,我已经能够通过直接从父项目引用源路径来解决这个问题。
为您的父 pom 的 maven-javadoc-plugin 尝试此配置。
<configuration>
<sourcepath>
lomboklib/target/generated-sources/delombok;
other/target/generated-sources/delombok
</sourcepath>
</configuration>
确实不太理想。感觉有点hack。
我创建了一个解决方法构建配置,它将从生成的源中创建聚合的 javadoc,尽管调用序列有两个步骤:
mvn package
mvn -N pre-site
构建配置现已在 Github 中发布。当前版本只支持深度为一的项目树,当然可以修改。它通过在父 target
目录下收集依赖项然后 运行 包含的 Ant 脚本来工作。
最后,如果运行在Jenkins下,可以通过Executeshell[=26=在同一个作业中调用mvn -N pre-site
] 步。在我们的 Jenkins 版本中发布 javadoc 需要使用 post-build 操作“使用来自另一个项目的发布者”。