sbt - 在 sbt 中查找另一个项目的 classDirectory
问题描述
我有一个看起来像这样的项目:
构建.sbt
lazy val data = project in file("testData")
lazy val foo = (project in file("foo")).dependsOn(data % "test->test")
lazy val bar = (project in file("bar")).dependsOn(data % "test->test")
一些代码需要从文件中读取数据,而不是作为类路径上的资源。鉴于这些依赖关系,数据 jar 不会自动更新,所以我需要复制数据的 classes 目录。定义一个任务IO.copyDirectory
应该这样做,但我需要做一些事情,比如data.classesDirectory
知道从哪里复制。
我可以data.base + target/scala-2.12/classes
,但这会硬编码几个假设。2.12 可以替换为scalaBinaryVersion
,但是仍然有一堆看起来很难硬编码的部分。
data.settings
看起来像一个可能的候选人,但尝试使用它会给出一个模棱两可的方法警告:
error: ambiguous reference to overloaded definition,
both method settings in trait Project of type (ss: sbt.Def.SettingsDefinition*)sbt.Project
and method settings in trait ProjectDefinition of type => Seq[sbt.Def.Setting[_]]
match expected type Any
println("settings: " + data.settings)
^
data.configurations
看起来也很有用,但它是一个空列表。
我如何以show data/classDirectory
编程方式进行等效操作?
解决方案
推荐阅读
- asp.net-core-2.0 - 使用 SignalR 从 ASPNetCore MVC 应用程序中的控制器操作调用 Hub 方法
- amazon - Pay with Amazon 的开发人员资源,印度
- asp.net-core-2.0 - 使用 http.sys 网络服务器部署的自托管 Asp.Net Core WebAPi
- mysql - 无法仅在列上选择具有 MAX 值的行
- corda - 合约如何强制规定只有某些参与方才能使用线性状态?
- batch-file - Windows批处理文件将1000个文件分组到字母数字文件夹中
- python - 为什么品脱需要单位注册表?
- ios - 如何在 3 次不正确的触摸/面部 id 识别后忽略 iOS 设备 PIN 提示
- javascript - 在 php 中阅读页面时保持用户在线
- c# - 尝试从性能监视器中提取 CPU 和网络使用信息