sbt编程语言scala的构建工具配置及项目构建(附带网盘下载)

news/2024/11/27 19:28:06/

SBT简介

SBT 是 Scala 的构建工具,全称是 Simple Build Tool, 类似 Maven 或 Gradle。

Java可以用Maven快速构建项目,scala用SBT快速构建一个Scala项目。

sbt下载官网

百度网盘链接:https://pan.baidu.com/s/1eJkdWndZ0izcd3waqA2hdQ
提取码:oeq1

在这里插入图片描述

SBT参数配置

配置本地目录:

在config的该目录下追加内容

在这里插入图片描述

-Dsbt.log.format=true
-Dfile.encoding=UTF8
-Dsbt.global.base=e:/sbt/.sbt
-Dsbt.boot.directory=e:/sbt/.sbt/boot/
-Dsbt.repository.config=e:/sbt/.sbt/repo.properties
-Dsbt.ivy.home=e:/sbt/.ivy2
-Dsbt.override.build.repos=true
-Xmx512M
-Xss2M
-XX:+CMSClassUnloadingEnabled

有路径的设置为本地路径即可

设置阿里镜像(新建repo.properties)

新建的目录要和上面配置的对应

[repositories]
local
aliyun: http://maven.aliyun.com/nexus/content/groups/public/
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
sonatype-oss-releases
maven-central
sonatype-oss-snapshots

java.io.IOException: failed to create lock file e:\Scala\sbt-1.7.2\repo\boot\sbt.boot.lock

java.io.IOException: failed to create lock file e:\Scala\sbt-1.7.2\repo\boot\sbt.boot.lockat xsbt.boot.Locks$.liftedTree1$1(Locks.scala:43)at xsbt.boot.Locks$.apply0(Locks.scala:41)at xsbt.boot.Locks$.apply(Locks.scala:36)at xsbt.boot.Launch.locked(Launch.scala:393)at xsbt.boot.Launch.getAppProvider(Launch.scala:304)at xsbt.boot.Launch.app(Launch.scala:216)at xsbt.boot.Launch.app(Launch.scala:214)at xsbt.boot.Launch$.run(Launch.scala:140)at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)at xsbt.boot.Launch$.launch(Launch.scala:159)at xsbt.boot.Launch$.apply(Launch.scala:44)at xsbt.boot.Launch$.apply(Launch.scala:21)at xsbt.boot.Boot$.runImpl(Boot.scala:78)at xsbt.boot.Boot$.run(Boot.scala:73)at xsbt.boot.Boot$.main(Boot.scala:21)at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.io.IOException: 系统找不到指定的路径。at java.io.WinNTFileSystem.createFileExclusively(Native Method)at java.io.File.createNewFile(File.java:1012)at xsbt.boot.Locks$.liftedTree1$1(Locks.scala:41)... 15 more
[error] [launcher] error during sbt launcher: java.io.IOException: failed to create lock file e:\Scala\sbt-1.7.2\repo\boot\sbt.boot.lock

Dsbt.repository.config=e:/sbt/.sbt/repo.properties在本地设置时/是在Linux系统的路径,在window中要使用\。例如本地配置

# sbt configuration file for Windows# Set the java args#-mem 1024 was added in sbt.bat as default#-Xms1024m
#-Xmx1024m
#-Xss4M
#-XX:ReservedCodeCacheSize=128m# Set the extra sbt options# -Dsbt.log.format=true-Dsbt.log.format=true
-Dfile.encoding=UTF8
-Dsbt.global.base=d:\Scala\sbt-1.7.2\repo\base
-Dsbt.boot.directory=d:\Scala\sbt-1.7.2\repo\boot
-Dsbt.repository.config=d:\Scala\sbt-1.7.2\repo\repo.properties
-Dsbt.ivy.home=d:\Scala\sbt-1.7.2\repo\.ivy2
-Dsbt.override.build.repos=true

出现该错误都是路径问题,未找到路径或路径配置不对注意修改

安装完成测试

  • 若sbt配置了环境变量直接在dos下输入sbt
  • 未配置环境变量在sbt的bin目录下输入sbt

在这里插入图片描述>出现上面界面即配置完成

IDEA 基于sbt构建scala项目

基于IDEA的创建方式需要全局配置sbt,即配置环境变量。
在这里插入图片描述
之后版本选择与本地版本对应就行了

在这里插入图片描述

第一次加载时间会很长,切换为阿里镜像会快一点

【切换阿里镜像】找到用户资料的文件夹下的.sbt文件夹

在这里插入图片描述
创建repo.properties文件:

[repositories]
local
Nexus osc : http://maven.oschina.net/content/groups/public/
Nexus osc thirdparty : http://maven.oschina.net/content/repositories/thirdparty/
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
typesafe2: http://repo.typesafe.com/typesafe/releases/
sbt-plugin: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/
sonatype: http://oss.sonatype.org/content/repositories/snapshots
uk_maven: http://uk.maven.org/maven2/
ibibli: http://mirrors.ibiblio.org/maven2/
repo2: http://repo2.maven.org/maven2/

添加镜像后重启项目,刷新sbt

[info] loading settings for project untitled1 from build.sbt ...
[info] set current project to untitled1 (in build file:/D:/Scala/ScalaProjects/untitled1/)
[warn] there's a key that's not used by any other settings/tasks:
[warn]
[warn] * untitled1 / idePackagePrefix
[warn]   +- D:\Scala\ScalaProjects\untitled1\build.sbt:7
[warn]
[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
[info] sbt server started at local:sbt-server-fe2e6dcb84198d6f4b31
[info] started sbt server
sbt:untitled1>
;set _root_.scala.collection.Seq(historyPath := None,shellPrompt := { _ => "" }
,SettingKey[_root_.scala.Option[_root_.sbt.File]]("sbtStructureOutputFile") in _root_.sbt.Global := _root_.scala.Some(_root_.sbt.file("C:/Users/fireapproval/AppData/Local/Temp/sbt-structure.xml")),SettingKey[_root_.java.lang.String]
("sbtStructureOptions") in _root_.sbt.Global := "download, resolveClassifiers, resolveSbtClassifiers")
[info] Defining Global / sbtStructureOptions, Global / sbtStructureOutputFile and 1 others.
[info] The new values will be used by cleanKeepGlobs
[info] 	Run `last` for details.
[info] Reapplying settings...
[info] set current project to untitled1 (in build file:/D:/Scala/ScalaProjects/untitled1/)
[info] Applying State transformations org.jetbrains.sbt.CreateTasks from C:/Users/fireapproval/AppData/Roaming/JetBrains/IntelliJIdea2021.2/plugins/Scala/repo/org/jetbrains/scala/sbt-structure-extractor_2.12_1.0/2021.1.1/sbt-structure-extractor-2021.1.1.jar
[info] Reapplying settings...
[info] set current project to untitled1 (in build file:/D:/Scala/ScalaProjects/untitled1/)
[warn] sbt 0.13 shell syntax is deprecated; use slash syntax instead: Global / dumpStructure
[info] Writing structure to C:\Users\fireapproval\AppData\Local\Temp\sbt-structure.xml...
[info] Done.
[success] Total time: 1 s, completed 2023-1-23 18:47:10
[info] shutting down sbt server

在这里插入图片描述

出现上面的就表示构建成功

构建的项目如图所示:

在这里插入图片描述

基于Maven构建

打开设置中的项目结构:
打开项目结构,选择全局库,点击+号,导入下载的scala文件(scala.zip解压的文件夹,是scala-sdk)
在这里插入图片描述

导完后应该是上图所示的样子

再新建选择Maven-----------------》选择从原型构建----------》------------》scala-archtype-simple

在这里插入图片描述

下一步
在这里插入图片描述
maven配置

在这里插入图片描述

IDEA创建scala项目的三种方法


http://www.ppmy.cn/news/19044.html

相关文章

Yolo系列理论

参考文章:AI菌的YOLO系列 目标检测-Yolo系列发展Anchors Base原理Anchors Free原理YOLO v1Yolov1网络结构Yolov1实现方法Yolov1损失函数Yolov1总结YOLO v2Yolov2网络结构Yolov2改进细节Yolov2总结YOLO V3Yolov3网络结构YOLO V4Yolov4网络结构YOLOv4 BackBone训练策略…

开篇点睛——Elasticsearch

在互联网当中我们的查询的信息主要包括文章、视频、图片、网站信息等各式各样的复杂海量信息。怎么才能快速、准确的检索到我们想要的信息呢? 传统意义上根据数据的格式,我们会将数据分为三个大类 结构化数据非结构化数据半结构化数据 接下来我们详细的了解一下这…

【目标检测论文解读复现NO.25】基于改进Yolov5的地铁隧道附属设施与衬砌表观病害检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

【 uniapp - 黑马优购 | 登录与支付(2)】如何实现三秒后跳转和微信支付

个人名片: 🐼作者简介:一名大二在校生,讨厌编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:见文末 🕊️系列专栏:🖼…

Python基础学习 -- 文件操作

一、open函数1、打开要操作的文件2、第一个参数:要打开文件的路径3、第二个参数:打开文件的方式r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式…

2.4总线操作和定时

文章目录一、引子二、介绍1.总线周期2.总线定时规范三、同步定时方式1.过程2.特点3.优缺点①优点②缺点四、异步定时方式1.介绍2.三种方式(1)不互锁方式(2)半互锁方式(3)全互锁方式3.优缺点①优点②缺点五、…

WebRTC系列-Qos系列之接收NACK

文章目录 1. 主要调用流程1.1 RTCP和RTP包区分1.2 查找丢失包2. RTX在文章 WebRTC系列-Qos系列之RTP/RTCP源码分析-RTP/RTCP包解析-3的2.3.3章节介绍了NACK包在WebRTC中解析方式及RFC规定协议的定义。 这篇文章开始,详细分析其接受RTCP包到解析nack的处理流程; 1. 主要调用流…

一、pyhon准备工作篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. python官网 2. 检查是否安装完毕 3. pycharm官网 5. phcharm更换主题 6. 新建第一个python文件 7. pycharm字体大小设置 ​​​​​​​8. 设置快捷键 设置字体大小 ​​​​​​…