如何使用sbt将java库与scala结合使用?
所以,我有一个用Scala为Spark编写的项目。当前sbt文件如下所示如何使用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文件夹中
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
。