如何在自定义清除任务中排除文件?

我正在研究一个TaskKey使clean文件夹保持在target目录中的自定义-这是我不想每次都填充的数据库。

所以我尝试了这样的事情:

lazy val cleanOutput = taskKey[Unit]("Prints 'Hello World'")

cleanOutput := clean.value

cleanKeepFiles in cleanOutput <+= target { target => target / "database" }

似乎in cleanOutput没有考虑到该声明
即使我仅执行以下操作,也不起作用:

cleanKeepFiles in clean <+= target { target => target / "database" }

但是以下工作原理:

cleanKeepFiles <+= target { target => target / "database" }

为什么有区别?

lpiepiora

有一些,它们可能在不同的范围(项目,配置或任务)中具有定义的值

即使没有在任何范围内使用键,也可以定义键,并且可以在任何范围内给键赋值。后者并不意味着该值将由特定任务使用。这意味着您可以出于自己的目的重复使用sbt声明的密钥。

您声明新的内容taskKey您定义要调用的任务clean然后cleanKeepFiles您可以新任务范围内将其定义为等于之前的值,再加上目标中的数据库目录。

该值设置正确,但是clean任务不会在您的任务范围内寻找它。

您可以验证它:

> show cleanOutput::cleanKeepFiles  
[info] List(/home/lpiepiora/Desktop/sbt/stack-overflow/q-24020437/target/.history, /home/lpiepiora/Desktop/sbt/stack-overflow/q-24020437/target/database)

另外,您可以检查:

> inspect *:cleanKeepFiles
[info] Setting: scala.collection.Seq[java.io.File] = List(/home/lpiepiora/Desktop/sbt/stack-overflow/q-24020437/target/.history)
[info] Description:
[info]  Files to keep during a clean.
[info] Provided by:
[info]  {file:/home/lpiepiora/Desktop/sbt/stack-overflow/q-24020437/}q-24020437/*:cleanKeepFiles
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:278
[info] Dependencies:
[info]  *:history
[info] Reverse dependencies:
[info]  *:clean
[info] Delegates:
[info]  *:cleanKeepFiles
[info]  {.}/*:cleanKeepFiles
[info]  */*:cleanKeepFiles
[info] Related:
[info]  *:cleanOutput::cleanKeepFiles

您还可以看到sbt知道,您已经在scope中设置了它,*:cleanOutput::cleanKeepFiles只是没有使用它。

它会在哪里寻找?您可以通过检查检查clean任务。

> inspect clean
[info] Task: Unit
[info] Description:
[info]  Deletes files produced by the build, such as generated sources, compiled classes, and task caches.
// next lines are important
[info] Dependencies:
[info]  *:cleanKeepFiles
[info]  *:cleanFiles

您可以看到依赖项之一是*:cleanKeepFiles*表示全局配置。这意味着clean任务将在该范围内寻找设置。您可以将设置更改为:

cleanKeepFiles += target.value / "database"

这会将其设置为clean任务使用的正确范围

编辑

有一个doClean函数可以重用。鉴于此,您可以像这样定义干净的任务:

val cleanKeepDb = taskKey[Unit]("Cleans folders keeping database")

cleanKeepDb := Defaults.doClean(cleanFiles.value, (cleanKeepFiles in cleanKeepDb).value)

cleanKeepFiles in cleanKeepDb += target.value / "database"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从构建中排除文件(自定义和临时)

来自分类Dev

创建DOJO自定义版本时,如何从层中排除dojo文件?

来自分类Dev

如何在mysql中排序自定义日期?

来自分类Dev

如何在自定义WAR任务中强制Gradle覆盖资源文件?

来自分类Dev

如何使用自定义目标“ PublishToFileSystem”从发布中排除APP_DATA目录

来自分类Dev

从搜索中排除自定义帖子类型的子项

来自分类Dev

如何在sbt中实现自定义监视任务?

来自分类Dev

如何在.NET中自定义任务计划?

来自分类Dev

如何在sbt中实现自定义监视任务?

来自分类Dev

如何在rsync中排除文件?

来自分类Dev

如何在rsync中排除文件?

来自分类Dev

从实习生覆盖的文件中排除文件,我需要自定义报告器吗?

来自分类Dev

如何清除/清除我的自定义发行版不需要的文件或缓存

来自分类Dev

如何清除自定义日志格式?

来自分类Dev

Gradle:如何在编译后但将文件打包到Jar中之前添加自定义任务?

来自分类Dev

如何从自定义任务执行runMain?

来自分类Dev

如何在xml文件上显示自定义视图?

来自分类Dev

如何在bash文件中创建自定义功能

来自分类Dev

如何在iOS7中自定义UISearchBar(清除按钮)

来自分类Dev

如何在React JS中清除自定义控件的值

来自分类Dev

如何在Gradle生成的POM文件中排除依赖项

来自分类Dev

如何在Spring中排除某些@Configuration文件?

来自分类Dev

如何在Jenkins ArtifactDeployer插件中排除文件?

来自分类Dev

如何在Gradle中排除目录下的所有文件?

来自分类Dev

如何在Powershell中排除所选文件的列表

来自分类Dev

如何在递归chmod中排除隐藏文件?

来自分类Dev

如何在find,exec和grep中排除文件类型?

来自分类Dev

如何在Maven程序集中排除资源文件?

来自分类Dev

如何在树中排除多个文件扩展名?

Related 相关文章

  1. 1

    从构建中排除文件(自定义和临时)

  2. 2

    创建DOJO自定义版本时,如何从层中排除dojo文件?

  3. 3

    如何在mysql中排序自定义日期?

  4. 4

    如何在自定义WAR任务中强制Gradle覆盖资源文件?

  5. 5

    如何使用自定义目标“ PublishToFileSystem”从发布中排除APP_DATA目录

  6. 6

    从搜索中排除自定义帖子类型的子项

  7. 7

    如何在sbt中实现自定义监视任务?

  8. 8

    如何在.NET中自定义任务计划?

  9. 9

    如何在sbt中实现自定义监视任务?

  10. 10

    如何在rsync中排除文件?

  11. 11

    如何在rsync中排除文件?

  12. 12

    从实习生覆盖的文件中排除文件,我需要自定义报告器吗?

  13. 13

    如何清除/清除我的自定义发行版不需要的文件或缓存

  14. 14

    如何清除自定义日志格式?

  15. 15

    Gradle:如何在编译后但将文件打包到Jar中之前添加自定义任务?

  16. 16

    如何从自定义任务执行runMain?

  17. 17

    如何在xml文件上显示自定义视图?

  18. 18

    如何在bash文件中创建自定义功能

  19. 19

    如何在iOS7中自定义UISearchBar(清除按钮)

  20. 20

    如何在React JS中清除自定义控件的值

  21. 21

    如何在Gradle生成的POM文件中排除依赖项

  22. 22

    如何在Spring中排除某些@Configuration文件?

  23. 23

    如何在Jenkins ArtifactDeployer插件中排除文件?

  24. 24

    如何在Gradle中排除目录下的所有文件?

  25. 25

    如何在Powershell中排除所选文件的列表

  26. 26

    如何在递归chmod中排除隐藏文件?

  27. 27

    如何在find,exec和grep中排除文件类型?

  28. 28

    如何在Maven程序集中排除资源文件?

  29. 29

    如何在树中排除多个文件扩展名?

热门标签

归档