1.首先我的sbt环境是1.2.0,可以通过以下指令可以查看自己的版本。
sbt sbtVersion
2.我的scala版本是2.11.8。可以通过在命令行输入以下指令进行查看。
scala
3.在ideaij中添加scala和sbt依赖包。(我使用的服务器版本是centos 7)。之前也写过基于sbt的scala项目。但是由于这些环境配置随着比如spark版本不一致,而显示出来一定的时效性。因此这是最新我的build.sbt中添加的依赖配置(首先声明我使用的spark版本是2.3.0)
name := "lr+gbdt"
version := "1.0"
scalaVersion := "2.11.8"
publishMavenStyle := true
resolvers += "Spark Packages Repo" at "http://dl.bintray.com/spark-packages/maven"
// https://mvnrepository.com/artifact/org.apache.spark/spark-core
//spark 2.3.0对应的版本是spark-core的2.3.0
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0"
// https://mvnreposiatory.com/artifact/org.apache.spark/spark-mllib
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.3.0" % "runtime"
libraryDependencies += "com.github.fommil.netlib" % "all" % "1.1.2" pomOnly()
//libraryDependencies += "redis.clients" % "jedis" % "2.9.0"
//libraryDependencies += "org.apache.spark" % "spark-streaming-kafka-0-8_2.11" % "2.0.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.3.0"
mainClass in assembly := Some("candidate_NeuralNetworks") //主要是为了避免有不同版本的相同依赖包之间的冲突。
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
在project文件夹下,新建一个plugins.sbt文件,并添加如下内容。
logLevel := Level.Warn
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.9")
在build.sbt文件所在路径下,新建一个assembly.sbt文件,并添加如下内容。
resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
之后rebuild,进行sbt update即可。会花费一些时间下载一些依赖包,耐心等待就可以啦。