如何在Maven发布时跳过所有模块的Javadoc生成?
解决多模块Maven项目中跳过所有模块Javadoc生成的命令行方案
很理解你遇到的这个困扰——单模块下好用的-Dmaven.javadoc.skip=true,到了多模块项目里经常会出现子模块不生效的情况,尤其是在发布流程中。既然你没有权限修改pom文件,完全可以通过命令行参数来实现全局跳过,这里有几个可靠的方案:
方案一:确保参数全局传递
有时候不是参数本身不生效,而是发布命令(比如mvn deploy)的执行上下文需要明确参数传递到所有子模块。你可以直接将参数放在命令开头执行,Maven默认会把系统属性传递给所有子模块:mvn deploy -Dmaven.javadoc.skip=true如果还是有子模块没跳过,试试加上
-am(同时构建所有依赖模块)来强制参数覆盖:mvn deploy -Dmaven.javadoc.skip=true -am方案二:配合跳过Site插件(如果发布包含站点流程)
部分项目的发布流程会绑定maven-site-plugin,而这个插件可能会触发Javadoc生成(比如生成站点文档时需要javadoc)。这种情况下,你需要同时跳过Site插件和Javadoc:mvn deploy -Dmaven.javadoc.skip=true -Dmaven.site.skip=true方案三:使用更针对性的Javadoc跳过参数
还有一个更直接的参数-Djavadoc.skip=true,很多Javadoc插件的配置会直接监听这个参数,它的全局生效性在多模块场景下表现更好:mvn deploy -Djavadoc.skip=true
如果以上方案都没解决问题,你可以加上-X参数查看Maven的调试日志,确认参数是否真的传递到了子模块,或者有没有其他自定义插件在强制触发Javadoc生成。
内容的提问来源于stack exchange,提问作者sirineBEJI
相关产品推荐
相关产品推荐

