新建sbt项目

2023-11-30 20:48
文章标签 项目 新建 sbt

本文主要是介绍新建sbt项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:http://my.oschina.net/jingxing05/blog/287056

新建sbt项目

sbt没有新建project生成基本目录的功能  没有类似 sbt init的功能

sbt支持的目录结构,可以手动创建,这不费什么事,也可采用从其他标准sbt项目拷贝


|-- build.sbt         主构建文件 
|—lib                   第三方jar包 
|—project            下有另一个可编程的Build.scala构建文件可实现高级复杂功能 
|-- src 
| |-- main 
| | |-- java 
| | |-- resources 
| | |-- scala 
| |-- test 
| |-- java 
| |-- resources 
| |-- scala 
|—target           可选

也可以使用这个工具 Giter8

惯例:build.sbt定义主要简单的配置,对于构建逻辑放到project下的.scala文件中,用于更复杂定义和共享代码

build.sbt文件

与 build.xml    build.gradle  pom.xml   文件一样是主构建文件

build.sbt文件包含项目的大部分设置, 注意某项配置使用    空 行   来分隔的

本质上该文件是scala  Seq[Settings[_]]  的一个实例,每一行代表一个Setting[_]  ,而Setting是一个键值对  key := value ,多个键值对之间用 空行 分隔

sbt文件中不允许出现顶层object和class

key 的类型有: SettingKey[T]  TaskKey[T]  InputKey[T]  ,  := 是 这个 key的方法, 返回 一个 Setting[T] 对象

taskkey依赖Settingkey    Settingkey不能依赖taskkey。因为settingkey只解析一次, 而taskkey可执行多次

更改sbt运行日志级别

logLevel := Level.Debug|Info|Warning|Error

使用sbt插件

在project/plugins.sbt中添加所需要的插件:

resolvers += Resolver.url("artifactory", 
url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.10.0")

 

基本构建信息

name := "BasicProjectWithScalaTest"  项目名称


version := "1.0"   项目版本 这个会添加到jar包名后


scalaVersion := "2.11.1"    使用的 scala的版本

 

使用不同的Ivy仓库,提速

使用Seq为resolvers添加,形如:

?
1
2
3
4
5
6
resolvers ++= Seq(
   "OSChina Maven" at "http://maven.oschina.net/content/groups/public/" ,
   "OSChina Maven thirdparty" at "http://maven.oschina.net/content/repositories/thirdparty/" ,
   "Typesafe" at "http://repo.typesafe.com/typesafe/releases/" ,
   "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"
)

依赖管理

可以直接将jar包放到 lib目录下

scope范围概念 不同环境的依赖

一个scope中配置值单一,同一个配置 在不同scope的值 可以不同

sbt提供三种scope维度:

projects  :每个项目单独配置

configurations : 运行环境角度  -》 Compile(默认)     Test    Runtime

tasks

添加单个依赖

libraryDependencies += “groupID” % “artifactID” % “revision” % “scope”

多个依赖

libraryDependencies ++= Seq( // ++= 是个方法哦,用来叠加Seq对象 
  "com.typesafe.akka" %% "akka-actor" % "2.3.+",    //“groupID” % “artifactID” % “revision” % “scope” 
  "com.typesafe.akka" %% "akka-testkit" % "2.3.+",  //%%表示生成在artifactID之后附带 _scalaVersion 
  "org.scalatest" %% "scalatest" % "2.1.+" % "test", 
  "junit" % "junit" % "4.+" % "test", 
  "com.novocode" % "junit-interface" % "0.+" % "test" 
)

Build.scala用来配置multiProjects

配置入口类

mainClass in (Compile, packageBin) := Some("com.alvinalexander.Foo")

 

基本命令

可以先试试 sbt的基本命令:  

scala的包名不一定与实际的文件夹名字匹配

compile 编译 src下和项目根目录下的scala或Java文件  ~ compile会监视文件更改然后立即重新编译

run命令会自动搜索main方法    

package-doc打包文档为jar包     

inspect 查看某项配置  

doc 生成API文档

package打包后的jar包 在target scala版本下面,可以使用 jar tvf 查看被打包的文件  scala xxx.jar则直接运行

update 更新依赖

test运行所有测试 

reload 重新加载sbt文件 

publish 发布到远程仓库  publish-local

clean 清空target目录

console 编译当前项目的代码,放到classpath 中,然后启动scala控制台REPL

last run 查看上次run 错误的 stacktrace


这篇关于新建sbt项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438493

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机