繁体   English   中英

在使用sbt构建scala项目时,在classpath中包含非托管jar

[英]Including unmanaged jars on classpath, when building scala project using sbt

我正在尝试建立一个旧项目。

该项目依赖于sparrow-1.0.jar的java包

我将jar复制到lib_managed/jarslib目录,但是在编译时我仍然得到一个丢失的类路径错误。

project/SparkBuild.sbt包含对lib目录的project/SparkBuild.sbt

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]        ^

是否有一个命令行选项或其他配置我缺少从jar到项目导入添加类路径?

该项目使用sbt 0.12.3针对scala 2.9.3编译

我注意到我可以在类路径上使用jar运行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>

将lib目录和jar添加到子目录。 例如./core/lib/sparrow.jar似乎解决了这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM