如何从任务中执行依赖项目中的清理任务?

时间:2014-10-06 14:29:21

标签: sbt

如何从任务代码中清除SBT中的依赖项目?

我在此相关问题之前已经检查过:

但是我的语法很奇怪。

我试过这个:

projectDependencies.value.foreach { p =>
  System.out.println(s"Cleaning ${p.name}")
  (clean.all(ScopeFilter(inProjects(new LocalProject(p.name))))).value
}

但是SBT抱怨动态范围:

  

非法动态参考:p

2 个答案:

答案 0 :(得分:2)

build.sbt中使用以下内容:

val selectDeps = ScopeFilter(inDependencies(ThisProject))

clean in Compile := clean.all(selectDeps).value

答案 1 :(得分:0)

基于Jacek Laskowski提供的解决方案(谢谢),这是一个更完整的片段:

val cleanDependencies = taskKey[Seq[Unit]]("Clean dependencies of current project")

lazy val MyProject = project.settings(Seq(
   cleanDependencies <<= clean.all(ScopeFilter(inDependencies(ThisProject))),
   package <<= package.dependsOn(clean, cleanDependencies)
): _*)
相关问题