sbt添加依赖

参考

https://www.scala-sbt.org/1.x/docs/zh-cn/Library-Dependencies.html

有两种方式
非托管依赖:放在lib目录下的jar包
托管依赖:配置在构建定义中,并且会自动从仓库中下载

非托管依赖

  1. 将jar包放在lib文件下
  2. 如果需要修改lib的名称为custom_lib,在build.sbt文件中添加
unmanagedBase := baseDirectory.value / "custom_lib"

其中baseDirectory表示项目的根目录

托管依赖

sbt使用Apache Ivy实现托管依赖,sbt默认使用标准的Maven2仓库

libraryDependencies ++= Seq(
  groupID % artifactID % revision,
  groupID % otherID % otherRevision
)
或
libraryDependencies += groupID % artifactID % revision % configuration
添加额外仓库

类似 resolvers += name at location

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

也可以用来添加本地Maven仓库

resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"

例子

name := "ProjectName"
version := "0.1"
scalaVersion := "2.10.6"

libraryDependencies ++= Seq( //依赖库
  "org.apache.spark" % "spark-core_2.10" % "1.6.0" % "provided",
  "com.*****.******" % "common" % "1.1.4-SNAPSHOT" % "provided", //额外仓库中的依赖
  "org.apache.hadoop" % "hadoop-client" % "2.6.4" % "provided"
)

resolvers ++= Seq( //额外仓库添加
  "Admonitor Repository" at "http://maven.mzsvn.com/repository/admonitor",
  "Local Maven Repository" at "file:///home/dwj/.m2/repository"
)

publishMavenStyle := true
publishArtifact in Test := false

publishTo <<= version { (v: String) =>
  val nexus = "http://maven.mzsvn.com/"
  if (v.trim.endsWith("SNAPSHOT"))
    Some("snapshots" at nexus + "repository/admonitor-snapshots")
  else
    Some("releases"  at nexus + "repository/admonitor-releases")
}

猜你喜欢

转载自blog.csdn.net/d2457638978/article/details/79887695
sbt