Gradle如何配置仅在执行deploy任务时生成javadoc,常规构建跳过
实现方案
你可以通过调整javadoc相关任务的执行条件、绑定部署任务依赖来实现需求,配置方式如下:
基础配置(适用于大多数场景)
1. 调整默认构建逻辑
保留你现有的javadoc启用配置,同时设置javadoc相关任务默认不执行:
java { withJavadocJar() } // 常规构建时不执行javadoc生成和打包任务 tasks.named('javadoc') { onlyIf { false } } tasks.named('javadocJar') { onlyIf { false } }
2. 绑定部署任务触发逻辑
给你的deploy任务添加依赖,仅在执行部署操作时强制启用javadoc任务:
如果你使用的是maven-publish插件,部署任务名一般为
publish,如果是自定义的部署任务,替换为你自己的deploy任务名即可
tasks.named('deploy') { // 部署任务依赖javadoc打包任务 dependsOn tasks.named('javadocJar') // 执行部署时覆盖规则,强制运行javadoc相关任务 tasks.named('javadoc').configure { onlyIf { true } } tasks.named('javadocJar').configure { onlyIf { true } } }
可选灵活配置
如果你需要更自由的触发控制,也可以通过项目参数开关实现:
- 日常构建执行
gradle build:不会触发javadoc生成 - 部署时执行
gradle deploy -PenableJavadoc:自动执行javadoc生成
对应配置如下:
java { withJavadocJar() } // 仅当传入enableJavadoc参数时才执行javadoc相关任务 tasks.named('javadoc') { onlyIf { project.hasProperty('enableJavadoc') } } tasks.named('javadocJar') { onlyIf { project.hasProperty('enableJavadoc') } } tasks.named('deploy') { dependsOn tasks.named('javadocJar') }
内容的提问来源于stack exchange,提问作者user1143968
相关产品推荐
相关产品推荐

