sbt使用及配置

the summary of sbt

简介

sbt是一个专门用来编译scala工程的编译工具,其本身也是用scala实现。
github地址

安装与配置
  • 安装

    • 常用方法1:下载包
      • 下载
      • export环境变量到PATH即可
    • 常用方法2:手动安装
      • 下载sbt-launch.jar
      • 创建脚本:
        bash
        #!/bin/bash
        SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
        java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"
      • 添加可执行权限,并放入PATH中
  • 配置

    • -Dsbt.boot.properties=path/sbt.boot.properties
    • -Dsbt.scala.version=2.10.4:指定sbt使用的scala版本
    • -Dsbt.override.build.repos=true:sbt-launch.jar中有sbt.boot.properties文件,默认使用此文件,如果不设置此参数为true,即使指定第一个参数也不起作用
    • -Dsbt.repository.secure=false:是否使用https协议获取依赖信息等,这个在国内的复杂环境里就不要开了哈
    • `-Dsbt.ivy.home=path`:设置ivy存放及读取路径
    • 工程配置
      • 工程下的project/build.properties文件中,要根据sbt-launch.jar的版本,设置对应的版本号(sbt.version=0.13.13),否则会报错
      • 工程下的build.sbt中,设置编译工程用的scala版本号(scalaVersion := “2.10.4”)
    • 默认是使用${user.home}路径下的.ivy2/.sbt/两个文件夹下的相关配置,及存放依赖包和信息
sbt.boot.properties文件解释

此文件包含5个部分,scala app repositories bootivy

  • scala
    • 指定使用的scala版本号,一般使用默认
    • version: ${sbt.scala.version-auto}
  • app
    • sbt的版本信息,使用默认

    • org: ${sbt.organization-org.scala-sbt}
      name: sbt
      version: ${sbt.version-read(sbt.version)[0.13.13]}
      class: ${sbt.main.class-sbt.xMain}
      components: xsbti,extra
      cross-versioned: ${sbt.cross.versioned-false}
      resources: ${sbt.extraClasspath-}
  • repositories
    • 指定仓库源,即依赖的jar,使用的plugin要去哪里找并获取
    • local:指去${sbt.ivy.home}/local/路径下查找和保存依赖及plugin信息
    • cache:指去${sbt.ivy.home}/cache/路径下查找和保存依赖及plugin信息
    • typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      • 这个是重点
      • 表示,去指定的url下的[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]这个路径下,去拿ivy.xml jar包 文档及源码信息
      • bootOnly:使用sbt方式解析organization部分
        • 千万不要改成mavenCompatible,此配置,会使用mvn的方式去解析organization
        • 例如:工程的project/plugins.sbt中添加1个pluginaddSbtPlugin("de.johoop" % "jacoco4sbt" % "2.1.6")
          • 使用bootOnly方式,会解析成de.johoop/jacoco4sbt/scala_2.10/sbt_0.13/2.1.6
          • 使用mavenCompatible方式,会解析成de/johoop/jacoco4sbt/scala_2.10/sbt_0.13/2.1.6,导致无法正确找到位置
    • maven-central:指去mvn中央仓库去拉取依赖信息
  • boot
    • 指定sbt运行的根路径,默认路径是${user.home}/.sbt/boot/
    • 存放运行sbt使用的scala版本及日志update.log
  • ivy
    • 指定ivy的路径,用于查找和存储ivy信息(解析工程依赖)
国内加速

如果想公共使用,在~/.sbt/路径下创建文件repositories,并将国内源放入即可。

[repositories]
  local
  cassandra: https://dl.bintray.com/spark-packages/maven/
  ali: http://maven.aliyun.com/nexus/content/groups/public/
  jcenter: http://jcenter.bintray.com/
  sbt: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/
  typesafe_repo: http://repo.typesafe.com/typesafe/releases
  typesafe-sbt-plugins: http://dl.bintray.com/sbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
  typesafe-ivy-releases: http://dl.bintray.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
  sonatype-oss-releases
  maven-central
  sonatype-oss-snapshots

可能一些理解有误,欢迎指正!

参考资料
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值