gpt4 book ai didi

sbt - 如何在不使用聚合的情况下执行对子项目调用 clean 的任务?

转载 作者:行者123 更新时间:2023-12-01 12:39:34 27 4
gpt4 key购买 nike

我想做一个cleanAll,它在多个子项目上执行clean 任务。我不想仅仅为了干净而使用聚合。

当我们一直在使用子模块时,我们遇到了 play 的 Assets 路由问题。

如何创建新任务有详细的文档记录,但如何在子项目上调用任务?

最佳答案

基于 Jacek Laskowski 的示例,我想出了以下插件,应该放在您的 /project 文件夹中:

import sbt._
import sbt.AutoPlugin
import sbt.Keys._
import sbt.plugins.JvmPlugin

object CleanAllPlugin extends AutoPlugin {

val cleanAll = taskKey[Unit]("Cleans all projects in a build, regardless of dependencies")

override def requires = JvmPlugin

override def projectSettings = Seq(
cleanAllTask
)

def cleanAllTask = cleanAll := Def.taskDyn {
val allProjects = ScopeFilter(inAnyProject)
clean.all(allProjects)
}.value
}

现在可以将插件添加到根项目以供使用:

val main = Project("root", file("."))
.enablePlugins(CleanAllPlugin)

可以在SBT中调用:cleanAll

关于sbt - 如何在不使用聚合的情况下执行对子项目调用 clean 的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244825/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com