Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用sbt将java库与scala结合使用?_Java_Scala_Apache Spark_Sbt - Fatal编程技术网

如何使用sbt将java库与scala结合使用?

如何使用sbt将java库与scala结合使用?,java,scala,apache-spark,sbt,Java,Scala,Apache Spark,Sbt,所以,我有一个用Scala为Spark编写的项目。当前sbt文件如下所示 name := "MyProgram" version := "1.0" scalaVersion := "2.10.4" libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0" 比如说,我想使用外部java库,所有这些库都在一个目录lib中。如何修改sbt文件以包含这些库?sbt应自动包含lib文件夹中的所有JAR 仅在lib文件夹中

所以,我有一个用Scala为Spark编写的项目。当前sbt文件如下所示

name := "MyProgram"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"

比如说,我想使用外部java库,所有这些库都在一个目录lib中。如何修改sbt文件以包含这些库?

sbt应自动包含lib文件夹中的所有JAR


仅在lib文件夹中浮动的依赖项(而不是在build.sbt文件中声明的依赖项)称为

sbt应该自动包括lib文件夹中的所有jar


仅在lib文件夹中浮动的依赖项(而不是在build.sbt文件中声明的)称为

,作为非托管依赖项的用例示例(如Dominic所述),在
build.sbt
中添加这些模式

unmanagedBase <<= baseDirectory(_ / "./java-libs")

unmanagedClasspath in Compile +=
    file(System.getenv("EXTRA_LIBS_HOME")) / "java-libs/package.jar"

unmanagedBase作为非托管依赖项的用例示例(如Dominic所述),在
build.sbt
中添加这些模式

unmanagedBase <<= baseDirectory(_ / "./java-libs")

unmanagedClasspath in Compile +=
    file(System.getenv("EXTRA_LIBS_HOME")) / "java-libs/package.jar"

unmanagedBase我当前的源代码文件位于src\main\scala文件夹中。我应该把lib文件夹放在哪里?lib文件夹属于项目的顶层。很好。如果我想在另一台计算机(不是我编译的地方)上运行这个程序,我应该把那些lib文件放在哪里?同一个文件夹。我发布的链接概述了非托管依赖关系的正确答案。但是,只要您在编译的同一台机器上运行所有内容,这种方法就可以工作。如果你想在不同的机器上运行,那么你需要打包你的项目。您可以尝试使用uber/fat jar插件,如。否则,您可以使用
任务,然后确保所有依赖项(托管和非托管)都包含在Java类路径中。我当前的源代码文件位于文件夹src\main\scala中。我应该把lib文件夹放在哪里?lib文件夹属于项目的顶层。很好。如果我想在另一台计算机(不是我编译的地方)上运行这个程序,我应该把那些lib文件放在哪里?同一个文件夹。我发布的链接概述了非托管依赖关系的正确答案。但是,只要您在编译的同一台机器上运行所有内容,这种方法就可以工作。如果你想在不同的机器上运行,那么你需要打包你的项目。您可以尝试使用uber/fat jar插件,如。否则,您可以使用
任务,然后确保所有依赖项(托管和非托管)包含在Java类路径中。如果这些外部库在Maven或其他可公开访问的repo上可用,则应将它们作为依赖项添加到
build.sbt
。如果这些外部库在Maven或其他可公开访问的repo上可用,则应将它们作为依赖项添加到
build.sbt