小工具      在线工具  汉语词典  css  js  c++  java

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

大数据,scala,开发语言,后端 额外说明

收录于:101天前

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.lock
        at 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构建

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

导入后,应该如上图所示。

找不到org.scala-tools:maven-scala-plugin该插件

如果找不到插件,只需导入以下两个依赖即可:

<!-- https://mvnrepository.com/artifact/org.scala-tools/maven-scala-plugin -->
    <dependency>
      <groupId>org.scala-tools</groupId>
      <artifactId>maven-scala-plugin</artifactId>
      <version>2.11</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-eclipse-plugin -->
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-eclipse-plugin</artifactId>
      <version>2.5.1</version>
    </dependency>

导入后,清理并编译。

构建完成的目录结构:
在这里插入图片描述

注意创建完毕之后,自带App静态对象,继承了Application

package scala;

public interface Application extends ScalaObject {
    
    void main(String[] var1);

    long executionStart();

    void executionStart_$eq(long var1);
}

这就造成了scala的语法问题,这是由于IDEA插件自动生成的pom文件中scala的版本是2.7,如最新版本语法不一样,这里需要修改成与本地scala一致的版本号。sdk导入的版本号在哪里?

在这里插入图片描述

修改为本地scala版本。

scalac: bad constant pool index: 318 at pos: 2716

scalac: 
  bad constant pool index: 318 at pos: 2716
     while compiling: D:\Scala\ScalaProjects\scala-maven\src\test\scala\org\example\MySpec.scala
        during phase: globalPhase=typer, enteringPhase=namer
     library version: version 2.12.17
    compiler version: version 2.12.17
  reconstructed args: -classpath C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program

== Source file context for tree position ==

     3 import org.specs._
     4 import org.specs.runner.{
    ConsoleRunner, JUnit4}
     5 
     6 class MySpecTest extends JUnit4(MySpec)
     7 //class MySpecSuite extends ScalaTestSuite(MySpec)
     8 object MySpecRunner extends ConsoleRunner(MySpec)
     9 

如果出现这个错误,是在没有修改pom的scala版本号的情况下编译的,导致test目录下出现一些旧的语法文件。

在这里插入图片描述
删除这些就可以了。

运行成功如下图:

在这里插入图片描述

至此,maven构建scala项目就完成了。

IDEA中创建scala项目的三种方法

. . .

相关推荐

额外说明

Spring学习第4部分:Spring依赖注入

       大家家好,我是一名网络怪咖,北漂五年。相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知Spring重要性,现在普遍都使用SpringBoot来开发,面试的时候SpringBoot原理也是经常会问到,SpringBoot是为了

额外说明

如果基于前后端分离版本对用户进行限制,则不允许多终端登录。

目录 1、application.yml新增一个配置soloLogin用于限制多终端同时登录 2、Constants.java新增一个常量LOGIN_USERID_KEY公用

额外说明

爬虫基本请求库的使用(一) urllib

urllib(内置库): requests: 最基本的请求模块 仅需要传入URL和额外的参数 error: 异常处理模块 parse: URL的工具模块 robotparser: 识别网站robot.txt文件, 判断网站是否可爬 urlopen():

额外说明

高级人工智能.Modus Pones定理完备性证明(详细)

写在最前 本文为博主复习高级人工智能这门课程时,针对于Modus Pones定理完备性证明这一问题,所做的笔记。这是国科大本门课程的必考题,步骤较为详细,建议理解后记忆。 Modus Pones定理回顾 命题演算分离规则(Modus Pones规则)是命

额外说明

C语言之变量的输入

首先上格式 int a;//定义一个变量,用来接受输入的值 scanf_s("%d",&a);//vs的输入 scanf("%d",&a);//其他编译器的输入 1.scanf() 2.%d,这个格式字符一定要和变量对上 3.&a一定要加取地址符号"&"

额外说明

Vite4+Vuejs3项目初步搭建,并部署多个vue项目到nginx

前提条件 1、熟悉命令行 2、已安装 16.0 或更高版本的 Node.js     参照vuejs官网的步骤,创建一个vue前端项目 当前vuejs的版本:3.2.47 npm init vue@latest Vue.js - The Progr

额外说明

敏捷开发中如何做好Sprint规划?

敏捷开发中如何做好Sprint规划?     什么是Sprint规划? Sprint规划是scrum中用来启动Sprint的事件。迭代规划的目标是定义Sprint可以交付的内容,以及如何完成各项工作。迭代规划需要整个scrum团队合作完成。 与体育概念中

额外说明

go的http包客户端的使用

一、基本介绍 在net/http包中提供了一个被称为Client的结构体,该结构体位于库文件的src/net/http/client.go文件中,常见使用场景一般是做go web开发过程中对接第三方的api接口(常见的比如微信授权获取手机号码等),爬虫领

额外说明

万维钢:发现效率的眼睛

你在生活中有没有那种感觉?就是总能发现各种“低效率”的场景,总受不了这样的场景,总想给提一个改进的方案。比如说,当你和一群人一起排队的时候,你的内心会不会发出一个呐喊:这太愚蠢了!这么多人就这么傻傻地等着?我们肯定有更好的办法! 想要增加效率、减少摩擦,

额外说明

Windows系统缺少找不到mscms.dll文件如何解决?

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mscms.dll文件(挑选

ads via 小工具