Специфический синтаксис для зависимостей библиотек области в SBT?

http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Library-Dependencies.html

Если вы хотите, чтобы зависимость отображалась в пути к классам только для теста конфигурации, а не конфигурации компиляции, добавьте% "test" like это:

libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3" % "test"

Может кто-нибудь объяснить, почему мы используем это обозначение? Я имею в виду конфигурацию в конце?

Почему бы нам не написать что-то вроде этого:

libraryDependencies in Test += "org.apache.derby" % "derby" % "10.4.1.3"

Ответ 1

Конфигурация в виде строки в конце представляет собой Ivy configuration и более точно описывается как сопоставление конфигурации. in Test не распространяется на все варианты использования, хотя он охватывает общие.

На странице Подробные темы/Управление зависимостями для 0.13 также есть дополнительная информация. Конфигурации - особенность плюща. Их можно рассматривать как обобщение областей Maven.

Обратите внимание, что все, что находится за пределами областей Maven, требует метаданных в виде ivy.xml. Это относится к метаданным, опубликованным в локальном репозитории с публикацией-локалью, опубликованной в репозитории Ivy или при использовании в локальной сборке перед публикацией. Метаданные в виде pom.xml, например, из Maven Central, ограничены стандартными областями Maven.