Это все примеры одного и того же подхода. libraryDependencies
ключ несет последовательность артефактов, каждый из которых определен как
groupID % artifactID % revision % configuration
в большинстве случаев, минуя дополнительный configuration
, который обычно используется для ограничения зависимостей, которые будут добавлены к "test"
только объем.
Если вы хотите объявить индивидуальную зависимость, то есть
libraryDependencies += single
Если у вас есть несколько, то, как правило, добавить их в виде пакета в последовательности:
libraryDependencies ++= Seq(first, second, third)
В вашем последнем примере, jdbc
, anorm
и т. Д. Ранее были определены выше, поэтому вы просто ссылаетесь на эти ранее существовавшие значения. Вы также можете сделать это сам:
lazy val myDep = groupID % artifactID % revision
libraryDependencies += myDep
Объединяет groupID
и artifactID
, существует специальный оператор %%
вместо %
, который полезен для библиотек Scala, потому что они часто скомпилированы с разными версиями Scala, таким как 2.10 и 2,11. Значение %%
означает, что версия Scala добавляется к artifactID
, опираясь на это общее соглашение. То есть
"com.foo" %% "bar" % "1.0"
Равен
"com.foo" % "bar_2.11" % "1.0"
, если Scala версия вашего проекта является 2,11, или
"com.foo" % "bar_2.10" % "1.0"
, если ваша версия Scala является 2,10 и т.д.
Они просто Vals импортирован из плагина play sbt, который делается таким же образом: «val jdbc =» com.typesafe.play «%%» play-jdbc «%» 2.3.7 "' (фактически сделанный с anot ее функции, но то же самое). –
Как я мог найти эти vals из ранее определенных плагинов – surenyonjan