У меня есть проект, который выглядит примерно так:
build.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")
Некоторый код должен скорее читать данные из файлачем в качестве ресурса на пути к классам. Учитывая эти зависимости, фляга данных не обновляется автоматически, поэтому мне нужно скопировать каталог классов данных. Определение задачи с помощью 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
программно?