Включение неуправляемых jar-файлов в classpath при сборке проекта scala с использованием sbt - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь построить старый проект.

Проект зависит от пакета Java, найденного в sparrow-1.0.jar

Я скопировал jar в каталог lib_managed/jars и lib, однако при компиляции все равно появляется ошибка отсутствующего пути к классу.

project/SparkBuild.sbt содержит ссылку на lib каталог

unmanagedJars in Compile <<= baseDirectory map { base => (base / "lib" ** "*.jar").classpath },

и содержание ./lib

root@26eefef538b1:/sparrow/spark-sparrow# tree -D lib
lib
|-- jars
|   `-- sparrow-1.0-SNAPSHOT.jar
|-- sparrow-1.0-SNAPSHOT.jar
`-- sparrow.jar

Однако, когда я компилирую, я все еще получаю те же ошибки:

root@26eefef538b1:/sparrow/spark-sparrow# sbt/sbt package assembly
[info] Loading project definition from /sparrow/spark-sparrow/project/project
[info] Loading project definition from /sparrow/spark-sparrow/project
[info] Set current project to root (in build file:/sparrow/spark-sparrow/)
[info] Compiling 260 Scala sources and 16 Java sources to /sparrow/spark-sparrow/core/target/scala-2.9.3/classes...
[error] /sparrow/spark-sparrow/core/src/main/scala/spark/scheduler/sparrow/SparrowScheduler.scala:28: not found: object edu
[error] import edu.berkeley.sparrow.thrift.FrontendService
[error]        ^

Есть ли опция командной строки или дополнительная конфигурация, которую мне не хватает для импорта add classpath из jar-файлов в проект?

Проект компилируется с scala 2.9.3 с использованием sbt 0.12.3

Я заметил, что могу запустить scala с банкой на пути к классам и импортировать объекты.

root@26eefef538b1:/sparrow/spark-sparrow# scala -cp $SPARROW_JAR                                                                                                                                                                                                                                                             
Welcome to Scala version 2.9.3 (OpenJDK 64-Bit Server VM, Java 1.7.0_201).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import edu.berkeley.sparrow.thrift.FrontendService
import edu.berkeley.sparrow.thrift.FrontendService

scala>

1 Ответ

0 голосов
/ 14 апреля 2019

Добавление каталога lib и jar в подкаталог.например, ./core/lib/sparrow.jar, кажется, решил проблему

...