向SBT中的所有作用域添加资源生成器
我有一个资源生成器,它应该同时用于编译和测试。代码如下所示:向SBT中的所有作用域添加资源生成器,sbt,Sbt,我有一个资源生成器,它应该同时用于编译和测试。代码如下所示: resourceGenerators in Compile += Def.task { val log = streams.value.log val source = (sourceDirectory in Compile).value / "isabelle" val target = (resourceManaged in Compile).value / "isabelle" if (source.exists
resourceGenerators in Compile += Def.task {
val log = streams.value.log
val source = (sourceDirectory in Compile).value / "isabelle"
val target = (resourceManaged in Compile).value / "isabelle"
if (source.exists()) {
log.info(s"Copying Isabelle sources from $source to $target")
IO.delete(target)
IO.copyDirectory(source, target)
val files = (target ** "*").get.filter(_.isFile)
val mapper = Path.rebase(target, "")
val contents = files.map(mapper).map(_.get).mkString("\n")
val list = target / ".libisabelle_files"
IO.write(list, contents)
list +: files
}
else {
Nil
}
}.taskValue
基本上,它会查找src/main/isabelle文件夹中的所有文件,将其复制到resources\u managed/main/isabelle,并另外写入这些文件的列表
到目前为止,这一切都很好,但我也希望支持src/test/isabelle。显然,我可以复制上面的代码,但即使我将公共位提取到一个函数中,这看起来也很不优雅
我尝试在Compile everywhere中删除引用,但无法删除对未定义设置的引用。是否要在图中使用:
val Isabelle设置=序号
resourceGenerators+=Def.task{
val log=streams.value.log
val source=sourceDirectory.value/isabelle
val target=resourceManaged.value/isabelle
如果source.com存在{
log.infosCopying Isabelle sources从$source到$target
IO.deletetarget
IO.copyDirectorysource,目标
val files=target***.get.filter_U2;.isFile
val mapper=Path.rebasetarget,
val contents=files.mapper.map\ux.get.mkString\n
val list=target/.libisabelle\u文件
IO.writelist,目录
列表+:文件
}
否则{
无
}
}.taskValue
IncofigCompileIsabelle设置
InFigtestisableSettings
见:
您要使用inConfig:
val Isabelle设置=序号
resourceGenerators+=Def.task{
val log=streams.value.log
val source=sourceDirectory.value/isabelle
val target=resourceManaged.value/isabelle
如果source.com存在{
log.infosCopying Isabelle sources从$source到$target
IO.deletetarget
IO.copyDirectorysource,目标
val files=target***.get.filter_U2;.isFile
val mapper=Path.rebasetarget,
val contents=files.mapper.map\ux.get.mkString\n
val list=target/.libisabelle\u文件
IO.writelist,目录
列表+:文件
}
否则{
无
}
}.taskValue
IncofigCompileIsabelle设置
InFigtestisableSettings
见:
> test:products
[info] Copying Isabelle sources from /Users/dnw/Desktop/t-2016-02-22.1038/src/test/isabelle to /Users/dnw/Desktop/t-2016-02-22.1038/target/scala-2.11/resource_managed/test/isabelle
[info] Copying Isabelle sources from /Users/dnw/Desktop/t-2016-02-22.1038/src/main/isabelle to /Users/dnw/Desktop/t-2016-02-22.1038/target/scala-2.11/resource_managed/main/isabelle