在过去的两天里,我一直在为此苦苦挣扎。堆栈溢出有几种解决方案对我不起作用。我试图忽略 prod 环境的 gradle 任务。要在构建时执行我的任务,即 dokkaHtml,我正在使用这个命令 -
tasks.named('preBuild') { finalizedBy(dokkaHtml) }
在不同的构建变体上运行时有没有办法禁用dokkaHtml任务(例如 - 忽略生产构建的任务)?
在过去的两天里,我一直在为此苦苦挣扎。堆栈溢出有几种解决方案对我不起作用。我试图忽略 prod 环境的 gradle 任务。要在构建时执行我的任务,即 dokkaHtml,我正在使用这个命令 -
tasks.named('preBuild') { finalizedBy(dokkaHtml) }
在不同的构建变体上运行时有没有办法禁用dokkaHtml任务(例如 - 忽略生产构建的任务)?
我正在检查当前的产品风味并根据结果启用 gradle 任务。这个解决方案对我有用 -
def getCurrentFlavor() {
Gradle gradle = getGradle()
String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
Pattern pattern
if( tskReqStr.contains( "assemble" ) )
pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
else
pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
Matcher matcher = pattern.matcher( tskReqStr )
if( matcher.find() )
return matcher.group(1).toLowerCase()
else
return ""
}
var currentFlavor = getCurrentFlavor().toString()
//disable dokka for prod environment
if(!currentFlavor.contains("production")){
tasks.preBuild.finalizedBy(dokkaHtml)
}
您可以尝试将 dokka 任务连接到特定风味preBuild
,因此在您的情况下,它将是这样的:
tasks.named('preDevDebugBuild') { finalizedBy(dokkaHtml) }
tasks.named('preDevReleaseBuild') { finalizedBy(dokkaHtml) }
tasks.named('preTestDebugBuild') { finalizedBy(dokkaHtml) }
tasks.named('preTestReleaseBuild') { finalizedBy(dokkaHtml) }
这样你就可以省略 dokka 来获得产品的味道。