时间是17年12月24日。初学Scala,想使用它的标配构建工具sbt,结果好大一轮折腾,因为公司隔离外网,需要内部代理,所以尤其折腾。下面的配置参考了好多篇不同的文章,已经没法一一留下出处了。而且还没有全部验证过。如有侵权,请联系我删除,谢谢。

1. 下载官方的zip包,http://www.scala-sbt.org/download.html。 解压后,修改用户的环境变量path,增加到sbt/bin的路径。

2. 配置repository。在用户默认路径[user]/.sbt下,添加文件repositories,加入依赖仓库的位置,包括公司的Nexus私服。例如下面例子,第一个local是固定的,表示自己本地的缓存,后面每行一个仓库,注意行末不要有多余的空格或tab字符。阿里云的maven仓库在国内是很好的来源。不需要的仓库可以先用#号注释掉。

[repositories]
local
myNexus: http://xxxxxxxxxxx
aliyun: http://maven.aliyun.com/nexus/content/groups/public/

3. 配置Nexus私服credential。参考文章 https://www.jianshu.com/p/9494aecebc8d 。

一般情况我们本地的nexus仓库都是有网关密码的,不能随便访问,因此如果sbt在下载的时候需要指定credential,因为sbt本身是一种类似scala的语言,通常用程序来实现就是在build.sbt加上这么一行:
Credentials.add("Sonatype Nexus Repository Manager", "nexusHostIp", "nexususername", "nexuspassword")
更好的办法是把credential放到一个文件:
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
但是这样需要在所有的工程里边加这么一句,很是麻烦,作为通用的配制,我们可以让他在更基础的文件里边调用,因此最终的方法如下,先把credential放到一个文件,这里我们选择的是~/.sbt/.credentials, 内容如下:
realm=Sonatype Nexus Repository Manager host=teamwork.kmtongji.com user=xxxxx password=xxxxx
接下来我们在sbt配置目录下创建一个公共调用的文件~/.sbt/0.13/plugins/credentials.sbt,内容如下:
credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
将调用放到底层加载过程中,因此具体的credentials文件放到哪里不那么重要,重点是调用这行代码,可以隐含的加载默认的credentials
上边只这展示了一个的例子,通过realm来匹配验证的用户名密码,只对http basic authentication有效,如果需要多个realm,应该也可以通过toml的配制方式增加[xxxx]的section区分,并没有测试过,只是猜测。

4. 配置本地缓存位置。默认以“[用户名]/.ivy2”和“[用户名]/.sbt”为本地仓库。修改缓存位置,可以修改sbt的目录下的conf/sbtconfig.txt文件。例如:

-Dfile.encoding=UTF8
-Dsbt.boot.directory=d:/sbt-repository/boot/
-Dsbt.ivy.home=d:/sbt-repository/
-Dsbt.repository.secure=false #是否使用https协议获取依赖信息

5. 配置proxy。因为sbt本身是经过jvm跑的,所以在$JAVA_OPTS环境变量里设置代理是有效的。这里还是使用sbt专门的配置方式,即在conf/sbtconfig.txt文件中增加配置信息。

##如下为代理的配置包括http与https.
-Dhttp.proxyHost=10.18.11.11
-Dhttp.proxyPort=8080
-Dhttp.proxyUser=xx
-Dhttp.proxyPassword=xx -Dhttps.proxyHost=10.18.11.11
-Dhttps.proxyPort=8080
-Dhttps.proxyUser=xx
-Dhttps.proxyPassword=xx

参考:

1. Sbt构建工具常用操作: https://www.jianshu.com/p/9494aecebc8d

2. 使用SBT构建Scala项目:https://www.cnblogs.com/shijiaqi1066/p/5103735.html

3. sbt初次使用配置:http://blog.csdn.net/qq_19648191/article/details/53725875

4. sbt使用及配置: http://blog.csdn.net/zhaorongsheng/article/details/53934542

5. SBT构建开发环境与代理和仓库配置: http://blog.csdn.net/wuliusir/article/details/50587448

Scala构建工具sbt的配置的更多相关文章

  1. Scala构建工具SBT

    SBT(Simple Build Tool)是Scala的项目构建工具,拥有依赖管理,构建过程管理和打包等功能. SBT官网上给出各平台的安装方法: MAC: 使用homebrew安装 brew in ...

  2. 深入浅出的webpack构建工具---webpack基本配置(一)

    深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...

  3. 基于流的自动化构建工具------gulp (简单配置)

    项目上线也有一阵子,回头过来看了看从最初的项目配置到开发的过程,总有些感慨,疲软期,正好花点时间,看看最初的配置情况 随着前端的发展,前端工程化慢慢成为业内的主流方式,项目开发的各种构建工具,也出现了 ...

  4. 构建工具-----Gradle-----安装配置

    介绍 Gradle 是一款构建工具,继 Ant .Maven 之后的现代构建工具. 下载 Gradle 下面是 Gradle 的官方网站地址: Gradle l Modern Open-Source ...

  5. 构建工具系列一--Travis-cli

    本文地址: http://www.cnblogs.com/blackmanba/articles/continuous-integration-tool-travis-cli.html或者http:/ ...

  6. 构建工具-----Gradle(二)-----myeclipse 10和myeclipse2015安装gradle插件----其他版本的myeclipse类似

    我们需要给myeclipse安装gradle的插件.这样myeclipse就能识别到gradle项目了,直接加载进去即可. 我们先安装配置系统命令行的gradle,挺简单的,下载后配置环境变量即可,详 ...

  7. grunt配置太复杂?发布一个前端构建工具,简单高效,自动跳过未更新的文件

    做前端项目,如果没有一个自动化构建工具,手动处理那简直就是坑爹O(∩_∩)O.于是上网了解了下,grunt用的人不少,功能也挺强大.看了一下grunt的配置(包括gulp),感觉稍显复杂.当时项目结构 ...

  8. 流行得前端构建工具比较,以及gulp配置

    前端现在三足鼎立的构建工具(不算比较老的ant,yeoman),非fis,grunt,gulp莫属了. fis用起来最简单,我打算自己得项目中使用一下fis. 先说一下gulp安装吧. 第一步:安装n ...

  9. Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)

    本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...

随机推荐

  1. Robot Framework - 基础关键字 BuiltIn 库(二)

    本篇教程,我们继续接着上篇内容进行讲解,我们本节教程讲解的是Robot Framework 机器人框架中的变量中使用判断.字符串的拼接.Evaluate的用法.调用Python文件.条件分支语句.以及 ...

  2. Java 起名规范

    注重代码编写规范: 1)都得遵循标识号的规范 2)不能以关键字,数字开头.也不要以拼音起名,最好用英文单词,单词组合来起名. 3)采用驼峰表示法,使用英文单词组合,单词首字母要大些,起到分割作用. - ...

  3. 编写高质量代码改善C#程序的157个建议——建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T>

    建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询一共提供了两类扩展方法,在System.Linq命名空间下,有两个静态类:E ...

  4. Flutter的使用教学笔记

    QQ交流群 Flutter 程序开发群:766307130 教程 官方实战 使用Flutter 构建精美的页面 云在千峰 博主一直是从事 Android 开发的,所以主要从 Android 技术角度来 ...

  5. 搭建Selenium环境

    1.下载并安装Python 此学习笔记使用Python语言进行开发,所以我已经安装了Python环境,我的Python版本为3.5.2: 2.安装selenium 因为我使用的Python3版本,在该 ...

  6. SpringBoot+MyBatis+MySQL读写分离(实例)

    ​ 1. 引言 读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做.因此,一般来讲,读写分离有两种实现方式.第一种是 ...

  7. Django rest framework框架——APIview源码分析

    一.什么是rest REST其实是一种组织Web服务的架构,而并不是我们想象的那样是实现Web服务的一种新的技术,更没有要求一定要使用HTTP.其目标是为了创建具有良好扩展性的分布式系统. 可用一句话 ...

  8. Java面向对象之关键字static 入门实例

    一.基础概念 静态关键字 static 是成员修饰符,直接用于修饰成员. (一)特点: 1.被静态修饰的成果,可以直接被类名所调用. 2.静态成员优先于对象存在. 3.静态成员随着类的加载而加载.随着 ...

  9. centos6.5 git clone http 报错

    自己搭建服务器环境为centos6.5,需要使用git clone 命令的时候报错 首先查看centos上安装的git版本,我的版本为1.7.10 报错后,查阅相关资料需将centos升级,操作如下 ...

  10. 局域网内搭建一个服务器,可以使用 https 吗

    https://www.v2ex.com/t/472394 这是一个创建于 126 天前的主题,其中的信息可能已经有所发展或是发生改变. 局域网内通过嵌入式设备搭建一个轻量级 web 服务,可以仍然使 ...