scala – 在sbt 0.11中的自定义任务中获取项目的源文件
发布时间:2020-12-16 09:57:22 所属栏目:安全 来源:网络整理
导读:我用SBT 0.11. 我在sbt项目中有以下build.sbt文件: myAction := { // val srcFiles = ? // How can I make srcFiles a List[File] of all sources files? println("This is my action")} 它工作正常,但我怎么能访问所有Java / Scala源文件路径的设置,例如sr
我用SBT 0.11.
我在sbt项目中有以下build.sbt文件: myAction := { // val srcFiles = ? // How can I make srcFiles a List[File] of all sources files? println("This is my action") } 它工作正常,但我怎么能访问所有Java / Scala源文件路径的设置,例如src / main / scala / * .scala,以及目标类目录,例如目标/斯卡拉-2.9.1 /班? 解决方法
比如定义一个taskKey
然后 yourActionTask <<= (baseDirectory,target,packageBin in Compile,resources in Compile...) map { (basedir,targetDir,bin,res...)=> // use these resources to complete your task as per your needs } BTW.您可以在Keys.scala源代码或sbt的scaladoc中找到更多预定义的任务/密钥. 这里有一个例子,你可以参考我从我的一个构建文件中提取的(只是将TaskKey和Task定义结合在一起,因为我不打扰我将来会重用TaskKey): val distTask = TaskKey[Unit]("dist","distribute the deployment package of eromanga") <<= (baseDirectory,fullClasspath in Compile,resources in Compile,streams) map { (baseDir,cp,jar,res,s) => s.log.info("[dist] prepare distribution folders...") val assemblyDir = targetDir / "dist" val confDir = assemblyDir / "conf" val libDir = assemblyDir / "lib" val binDir = assemblyDir / "bin" Array(assemblyDir,confDir,libDir,binDir).foreach(IO.createDirectory) s.log.info("[dist] copy jar artifact to lib...") IO.copyFile(jar,libDir / jar.name) s.log.info("[dist] copy 3rd party dependencies to lib...") cp.files.foreach(f => if (f.isFile) IO.copyFile(f,libDir / f.name)) s.log.info("[dist] copy shell scripts to bin...") ((baseDir / "bin") ** "*.sh").get.foreach(f => IO.copyFile(f,binDir / f.name)) s.log.info("[dist] copy configuration templates to conf...") ((baseDir / "conf") * "*.xml").get.foreach(f => IO.copyFile(f,confDir / f.name)) s.log.info("[dist] copy examples chanenl deployment...") IO.copyDirectory(baseDir / "examples",assemblyDir / "examples") res.filter(_.name.startsWith("logback")).foreach(f => IO.copyFile(f,assemblyDir / f.name)) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Docker windows容器内存限制
- Powershell并行循环
- webservice传递特殊字符时的解决办法
- bootstrap之双日历时间段选择控件—daterangepicker(汉化版
- 错误:不支持“./docker-compose.yml”中的版本.您可能会看
- 为什么scalac在这里出现“分歧的隐式扩展”错误?
- bash – 从shell脚本中的目录中选择随机文件的最佳方法
- angularjs – Angular $parent和$parent.$parent在使用ng-r
- JS控件bootstrap suggest plugin使用方法详解
- “可选”参数在AngularJS状态/视图与ui路由器