Проблемы с локальными зависимостями SBT - некоторые операции импорта просто не работают. (проект Scala) - PullRequest
0 голосов
/ 15 сентября 2011

ну, мне нужно было преобразовать проект, созданный с помощью Eclipse, в проект SBT. Тем не менее, когда я компилирую, некоторые неразрешенные зависимости вызывают ошибки компиляции.

> compile
[info] Compiling 9 Scala sources to /home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/target/scala-2.9.0.1/classes...
[error] /home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/src/main/scala/filesTagSystem/DynamicClassLoader.scala:7: not found: object labels
[error] import labels.FileLabeler
[error]        ^
[error] /home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/src/main/scala/filesTagSystem/DynamicClassLoader.scala:96: value labelFile is not a member of type parameter A
[error]      fileLabelers.foreach{ f=> f.labelFile(file).foreach{ s=> tagsList+=s}}
[error]                                  ^
[error] /home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/src/main/scala/watchDirectory/ServiceManager.scala:9: object StandardWatchEventKind is not a member of package java.nio.file
[error] import java.nio.file.StandardWatchEventKind._
[error]                      ^
[error] /home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/src/main/scala/main/clientManager.scala:24: overloaded method constructor Thread with alternatives:
[error]   (java.lang.String)java.lang.Thread <and>
[error]   (java.lang.Runnable)java.lang.Thread
[error]  cannot be applied to (watchDirectory.ServiceManager)
[error]     val serviceThread = new Thread(service)
[error]                         ^
[error] four errors found
[error] {file:/home/giladhoch/workspace/clever_dropbox/clever_dropbox_manager/}default-55f3d0/compile: Compilation failed
[error] Total time: 3 s, completed Sep 15, 2011 4:42:32 AM

Как видите, ошибки вызваны двумя неразрешенными операциями импорта. первый для import labels.FileLabeler и второй для import java.nio.file.StandardWatchEventKind._ ну, я понятия не имею, почему импорт java.nio не работает. JAVA_HOME определен для папки java7, так что, разве SBT не должен знать, что искать там? и для другого импорта, это локальный предварительно скомпилированный файл класса. я попытался добавить в build.sbt следующее:

resolvers += Resolver.file("local-lib", file("/home/*path-to-project*/src/main/scala/tagsPluginsDir/")) transactional()

но это не сильно помогло ... так как это можно решить?

спасибо, Гилад.

1 Ответ

1 голос
/ 15 сентября 2011

проблема была решена: для внешних исходных файлов я открыл новый проект sbt и использовал publish-local, поэтому файлы jar оказались в папке .ivy2, поэтому sbt теперь знает, где получить зависимости.

Что касается импорта java.nio.file.StandardWatchEventKind, выясняется, что у него просто отсутствовали конечные значения s, и оно должно быть следующим: java.nio.file.StandardWatchEventKind * s *

...