2015-09-08 6 views
1

Я хочу использовать некоторые классы из org.apache.commons в моем файле Build.scala, но он всегда жалуется, что классы, которые я хочу, не могут быть найдены. Когда они включены в верхнюю часть исходных файлов, все в порядке. Таким образом, одна и та же библиотека, если она включена в исходные файлы, в порядке; если они включены в файлы сборки, ошибка. Что мне нужно сделать, чтобы включить include для работы в Build.scala?Невозможно включить внешние классы в файлы сборки в sbt + intellij

Чтобы уточнить, для библиотек, используемых источника, вы можете добавить к

libraryDependencies ++ = ...

линия build.sbt файла

Но что делать с библиотеки, необходимые для самих файлов сборки? Оказывается, что

те элементы, добавленные к libraryDependencies ++ = ...

не могут быть использованы файлы сборки (.scala один).

ответ

1

Вы добавляете библиотеки для мета-сборки. Вы должны поместить параметр в project/build.sbt, а не в build.sbt. Взгляните на sbt documentation для лучшего понимания.

Простой демо:

$ mkdir project 

$ cat > project/build.sbt 
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.3.0.RC3" 

$ cat > build.sbt 
import org.json4s.jackson.JsonMethods 

{ 
    println(JsonMethods) 
    libraryDependencies ++= Nil 
} 

$ sbt 
[info] Loading global plugins from /Users/thirstycrow/.sbt/0.13/plugins/project 
[info] Loading global plugins from /Users/thirstycrow/.sbt/0.13/plugins 
[info] Loading project definition from /Users/thirstycrow/tmp/project 
[info] Updating {file:/Users/thirstycrow/tmp/project/}tmp-build... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[email protected] 
[info] Set current project to tmp (in build file:/Users/thirstycrow/tmp/) 
+0

Вы когда-нибудь использовали это? – marios

+1

@marios Нет, на самом деле. Я склонен писать плагины, чтобы сделать что-то сложное. Но это определенно работает таким образом. Я добавил простую демонстрацию. Надеюсь, поможет. – thirstycrow

+0

Это действительно приятно! Теперь я понимаю рекурсивный характер построения намного лучше. – marios

Смежные вопросы