如何从任务代码中清除SBT中的依赖项目?
我在此相关问题之前已经检查过:
但是我的语法很奇怪。
我试过这个:
projectDependencies.value.foreach { p =>
System.out.println(s"Cleaning ${p.name}")
(clean.all(ScopeFilter(inProjects(new LocalProject(p.name))))).value
}
但是SBT抱怨动态范围:
非法动态参考:p
答案 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)
): _*)