Size: a a a

Scala User Group

2021 February 19

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
зачем Def.setting
%%% не отработает и даст

value can only be used within a task or setting macro, such as :=, +=, ++=, Def.task, or Def.setting.
источник

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
и вот эта вся :: Nil
Ну он мне всёравно отдаст Seq - просто синтаксический сахар для листа через ::
Завозили из-за shapeless'a в своё время...
источник

YY

Yuriy Yarosh in Scala User Group
Ну т.е. я могу сделать только

 lazy val slinky = Def.setting("me.shadaj" %%% "slinky-core" % SlinkyVersion) 

libraryDependencies ++= slinky.value


А как сделать что бы макрос распаковывался с Seq'a и не сливал - не понятно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
что-то я не понимаю, что мешает написать
libraryDependencies ++= Vector (
 "me.shadaj" %%% "slinky-core" % version,
...
источник

YY

Yuriy Yarosh in Scala User Group
То что это раздует мой build.sbt всякой швалью т.к. это кроссплатформ проект с переиспользованием зависимостей - было бы неплохо вынести в Dependencies.scala... но с этими sbt макросами довольно сложно разобраться.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну тогда написать
val deps = Vector (
"..." %%% "..." % version,
...)



и в нужном месте
libraryDependencies ++= deps
источник

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
ну тогда написать
val deps = Vector (
"..." %%% "..." % version,
...)



и в нужном месте
libraryDependencies ++= deps
И это даст мне
```
value can only be used within a task or setting macro, such as :=, +=, ++=, Def.task, or Def.setting.
```
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Yuriy Yarosh
И это даст мне
```
value can only be used within a task or setting macro, such as :=, +=, ++=, Def.task, or Def.setting.
```
да нет там .value
источник

Oℕ

Oleg ℕizhnik in Scala User Group
откуда value взялось
источник

Oℕ

Oleg ℕizhnik in Scala User Group
в коде, котором я написал .value нет, такой ошибки быть не может
источник

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
да нет там .value
В %%% макросе через setting
источник

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
в коде, котором я написал .value нет, такой ошибки быть не может
%%% работает не так как %%
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Yuriy Yarosh
В %%% макросе через setting
т.е. ты нигде не пишешь .value, но такая ошибка всё равно есть?
источник

YY

Yuriy Yarosh in Scala User Group
Oleg ℕizhnik
т.е. ты нигде не пишешь .value, но такая ошибка всё равно есть?
Да
источник

YY

Yuriy Yarosh in Scala User Group
Если указываю одну зависимость через %%% и Def.setting() т.к есть интерполяция lazy val'a в ModuleID - оно работает

Если указываю не в build.sbt а в Dependencies.scala - одна зависимость с Def.setting() и .value работает, а как сделать .map(_.value) на Seq'e - ума не приложу
источник

YY

Yuriy Yarosh in Scala User Group
Отписали что Def.setting() можно вокруг seq'a обернуть
источник

YY

Yuriy Yarosh in Scala User Group
Супер
источник

Oℕ

Oleg ℕizhnik in Scala User Group
согласен, узнал
источник

Oℕ

Oleg ℕizhnik in Scala User Group
прошу прощения за наезды
источник

YY

Yuriy Yarosh in Scala User Group
Пришлось делать только так
 libraryDependencies ++=
     // shared with jvm
     (tests.value ++ units.value ++ cats.value ++ fs2.value ++ refined.value) ++
       // everything else
       slinky.value


и от части копи-пастить
источник