Как переопределить правильную задачу в плагине sbt? - PullRequest
0 голосов
/ 16 ноября 2018

Кто-то может объяснить мне, что такое scope и configuration данного task, когда они используются без указания?

> show libraryDependencies
[info] * org.scala-lang:scala-library:2.11.12

> show {.}/ *:libraryDependencies
[info] *

> show {.}/libraryDependencies
[info] *

> show */ *:libraryDependencies
[info] *

> show *:libraryDependencies
[info] * org.scala-lang:scala-library:2.11.12

Кажется, что *:libraryDependencies равно libraryDependencies.Это верно ?

Так что в коде плагина вам нужно переопределить projectSettings, а не globalSettings или buildSettings, правильно?

И тогда вы не используете ни один из Configuration, что ничего не значит в вызове .in(), верно?

1 Ответ

0 голосов
/ 18 ноября 2018

Это хорошо объяснено в официальной документации сейчас. То, что вы ищете, это правила для делегирования области действия , которые, в основном, определяют, как SBT разрешает задачу и параметры, когда вы обращаетесь к ним, но они не определены с этой конкретной конфигурацией оси.

Короче говоря, когда вы пишете просто someKey, это интерпретируется как <current project> / <key-dependent configuration> / Zero / someKey, что означает, что оно ограничено текущим проектом в вашей оболочке, конфигурация которого зависит от самого ключа, и Zero область задач. Если ключу в этой конкретной области не назначено значение, то для определения определения используется делегирование области, если оно вообще присутствует.

Обратите внимание, что синтаксис task.in(something) является унаследованным от 0.13 и более ранних версий SBT и больше не рекомендуется использовать. Используйте унифицированный синтаксис с косой чертой - все примеры в документации используют его, и его обычно легче читать и понимать, чем старый синтаксис.

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