Найти classDirectory другого проекта в sbt - PullRequest
0 голосов
/ 17 октября 2019

У меня есть проект, который выглядит примерно так:

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 программно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...