sbt1.4.4配置国内镜像源实操教程(无痛入门)
SBT 是 Scala 的构建工具,全称是 Simple Build Tool, 类似 Maven 或 Gradle。 SBT 的野心很大,采用Scala编程语言本身编写配置文件,这使得它稍显另类,虽然增强了灵活性,但是对于初学者来说同时也增加了上手难度。另外由于SBT默认从国外下载依赖,导致第一次构建非常缓慢,使用体验非常糟糕! 如果你是一名Scala初学者,本文希望帮你减轻一些第一次使用的痛苦。
本文的主要内容是帮助初学者从头到尾构建并运行一个Scala项目,重点在于讲解国内镜像仓库的配置。对于每一个操作步骤,会分别针对Windows、Mac和Linux三个主流操作系统进行讲解, 最终帮助你快速构建一个可运行的Scala开发环境。
第一步:安装SBT
单击这里下载 SBT 1.4.4(Linux版),下载完成后解压到指定目录,例如 D:\Software\sbt-1.4.4,然后将 D:\Software\sbt-1.4.4\bin 添加至环境变量PATH。SBT 1.4.4 采用 Coursier 以无锁的方式并行下载依赖,极大地提升了使用体验!
请确认本机已安装Java运行环境。
第二步:设置国内仓库,加快构建过程
1) 设置全局仓库
首先创建 .sbt 目录。
如果是Windows系统,则进入CMD执行如下命令:
cd C:\Users\USER_NAME
mkdir .sbt
cd .sbt
如果是Mac或Linux系统,则进入Bash执行如下命令:
cd ~
mkdir .sbt
cd .sbt
然后创建 repositories 文件内容如下,并将文件拷贝到 .sbt 目录下,
[repositories]
local
huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
maven-central: https://repo1.maven.org/maven2/
sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
2) 设置所有项目均使用全局仓库配置,忽略项目自身仓库配置
该参数可以通过 Java System Property 进行设置。在 SBT 中,有三种方法可以设置 Java System Property,可以根据需要自行选择。
方法一:修改SBT配置文件(推荐)
提醒一下, sbt-1.4.4/conf/ 目录下有两个配置文件, sbtconfig.txt 仅适用于 Windows 平台,而 sbtopts 仅适用于 Mac/Linux 平台。
针对 Windows 平台,打开 sbt-1.4.4/conf/sbtconfig.txt 文件,在末尾新增一行,内容如下:
-Dsbt.override.build.repos=true
针对 Mac/Linux 平台,打开 sbt-1.4.4/conf/sbtopts 文件,在末尾新增一行,内容如下:
-Dsbt.override.build.repos=true
方法二: 设置环境变量
在 Windows 上通过 set 命令进行设置,
set SBT_OPTS="-Dsbt.override.build.repos=true"
在 Mac/Linux 上使用 export 命令进行设置,
export SBT_OPTS="-Dsbt.override.build.repos=true"
方法三: 传入命令行参数
执行 sbt 命令时, 直接在命令后面加上配置参数,
sbt -Dsbt.override.build.repos=true
注意,如果由于某种原因, repositories 文件并不在默认的 .sbt 目录下,则需要通过 -Dsbt.repository.config 指定 repositories 文件的具体位置,该参数的三种设置方法同 -Dsbt.override.build.repos 。例如采用修改SBT配置文件方式 (推荐),则打开 sbt-1.4.4\conf\sbtconfig.txt 文件,在末尾新增如下内容:
-Dsbt.override.build.repos=true
-Dsbt.repository.config=path_to_repositories_file
如:
下面的配置是画蛇添足,默认就是这样的配置。仅作演示用。
vim /home/zxl/develop/sbt/conf/sbtopts
-Dsbt.override.build.repos=true
-Dsbt.log.format=true
-Dsbt.boot.directory=/home/zxl/.sbt/boot
-Dsbt.ivy.home=/home/zxl/develop/sbt/.ivy2
-Dsbt.global.base=/home/zxl/.sbt
-Dsbt.repository.config=/home/zxl/.sbt/repositories
第三步:构建并运行第一个Scala项目
1)修改项目SBT构建版本
单击 hello-scala 下载一个最简单的Scala项目,并解压到指定目录,如 D:\idea-projects 。由于SBT 1.4.4包含了多项性能提升,如果是已有的本地项目,请手动将项目的SBT构建版本改成1.4.4 。具体方法为:打开 project/build.properties 文件,将内容修改如下:
sbt.version = 1.4.4
在命令行中切换至 hello-scala 目录,执行sbt命令进入 sbt shell ,
第一次进入 sbt shell 时,由于需要下载相关依赖,大概需要几十秒时间,第二次及以后进入 sbt shell 会很快。
检查当前项目的SBT构建版本是否为1.4.4,
sbt:hello-scala> sbtVersion
[info] 1.4.4
sbt:hello-scala>
2)确认全局仓库是否已经覆盖项目自身仓库
sbt:hello-scala> show overrideBuildResolvers
[info] true
确认仓库列表是否与 ~/.sbt/repositories 文件一致:
sbt:hello-scala> show fullResolvers
3)编译并运行
编写一小段代码作为演示用:
$ mkdir hello
$ cd hello
$ echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > demo1.scala
确认无误后执行编译命令,
sbt:hello-scala> compile
[info] Compiling 1 Scala source to D:\idea-projects\hello-scala\target\scala-2.12\classes ...
[success] Total time: 4 s, completed 2019-9-16 11:39:41
查看SBT本地缓存,确认一下是否从国内仓库下载依赖。针对不同的操作系统,对应的缓存路径如下:
- Windows缓存路径是 %LOCALAPPDATA%\Coursier\Cache\v1 ,即如果用户名是joymufeng,则完整路径是 C:\Users\joymufeng\AppData\Local\Coursier\Cache\v1 。
- Linux缓存路径为 ~/.cache/coursier/v1 。
- Mac缓存路径为 ~/Library/Caches/Coursier/v1 。
下面是Windows缓存截图:
下面是Linux的缓存路径:
~/.cache/coursier/v1/https/
zxl@debian:~/IdeaProjects/hello$ ls ~/.cache/coursier/v1/https/
repo.huaweicloud.com
zxl@debian:~/IdeaProjects/hello$
最后执行项目,
Windows:
Linux:
#编译
sbt:hello> compile
[warn] scala-xml_2.12-1.0.6.jar no longer exists at /home/zxl/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar
[info] Updating
https://repo.huaweicloud.com/repository/maven/org/scala-lang/scala-library/2.12.12/scala-library-2.12.12.pom100.0% [##########] 1.6 KiB (2.5 KiB / s)
[info] Resolved dependencies
[info] Updating
https://repo.huaweicloud.com/repository/maven/org/scala-lang/scala-compiler/2.12.12/scala-compiler-2.12.12.pom100.0% [##########] 2.6 KiB (12.5 KiB / s)
......#运行
sbt:hello> run
[info] running Hi
Hi!
[success] Total time: 0 s, completed 2020年12月12日 下午12:07:41
sbt:hello>
sbt1.4.4配置国内镜像源实操教程(无痛入门)相关推荐
- Python安装某个库,出现Read_Time_out错误,那么如何配置 “国内镜像源”呢?
来源/快学Python 作者/黄伟呢 问题来源 今天在使用pip install xlutils安装xlutils包的时候,一直出现如下错误: ReadTimeoutError: HTTPSConne ...
- Mac全自动安装brew一键配置国内镜像源
M1版本 安装homebrew 官网方法:macOS(或 Linux)缺失的软件包的管理器 - Homebrew /bin/bash -c "$(curl -fsSL https://raw ...
- Linux:ARM+lUbuntu16.04配置国内镜像源
Linux:ARM+lUbuntu16.04配置国内镜像源 说明: 1.备份: 2.修改: 清华源 阿里源 3.更新: 说明: 因为x86平台上的镜像源和ARM平台上的镜像源是不能通用的,所以需要配置 ...
- android studio 镜像服务器设置,Android studio配置国内镜像源的实现
PS:网上看到的AS配置国内镜像源的博客版本有点老了,就想着做个比较新的博客了 推荐的几个国内镜像源地址: 1.东软信息学院(笔者当前在用) mirrors.neusoft.edu.cn 端口 ...
- Windows Docker 配置国内镜像源的两种方法
Windows Docker配置国内镜像源的两种方法 更新时间 2022.04.14 通过Docker-Desktop界面操作和修改daemon.json两种方法配置国内镜像源 方法一:通过Docke ...
- Python-pip配置国内镜像源
Python-pip配置国内镜像源 推荐的国内镜像站 [ 个人推荐清华大学pypi镜像站(https://mirrors.tuna.tsinghua.edu.cn/help/pypi/),每五分钟同步 ...
- pip配置国内镜像源——最新详尽版
国内镜像源 pip如果不配置国内镜像源的话,下载包的速度非常慢,毕竟默认的源在国外呢,国内主要的镜像源有如下,其中我个人喜欢用阿里云的镜像源. 阿里云 http://mirrors.aliyun.co ...
- Anaconda配置国内镜像源
1. 为conda配置(清华)镜像源 使用conda进行安装时,访问的是国外的网络,所以下载和安装包时会特别慢.我们需要更换到国内镜像源地址,这里我更换到国内的清华大学地址.(永久添加镜像) Wind ...
- Conda配置国内镜像源
Conda配置国内镜像源 # 换回默认源(清除所有用户添加的镜像源路径,只保留默认的路径) conda config --remove-key channels vim ~/.condarc .con ...
最新文章
- 多线程中的使用共享变量的问题
- Python常用网页字符串处理技巧
- 昨天电脑问题 补昨日8-3复习内容 异常与文件操作
- 审查元素上传php,KindEditor上传解析漏洞/列目录/内容漏洞_PHP教程
- QT Windows下生成动态链接库
- 降序php,以降序php读取文件
- MPC(模型预测控制)之二(路径规划)
- 大话数据结构之数据结构
- CI restful小试(二)
- 问题三十三:怎么用ray tracing画特殊长方体(box)
- 最长公共子序列长度以及打印(动态规划入门)
- 1 dhcp服务器的配置文件,Linux1 DHCP服务器配置 主配置文件(dhcpd.conf)
- 我想用人工智能留住父亲
- 1.Grettings and Introductions
- Evolutionary Acyclic Graph Partition
- SAP Commerce Cloud Github 仓库管理规范
- 12月15日(第12天)
- Apache与文件解析漏洞详解
- uri中为什么本地文件file后面跟三个斜杠, http等协议跟两个斜杠?
- Window对象的说明》