springboot 使用scala 开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 使用scala 开发相关的知识,希望对你有一定的参考价值。

参考技术A 咋说呢 ,还是使用scala做springboot开发比较流畅一些
按道理来说根据打包模式 maven sbt gradle来说三种方式都可以
maven 是最简单的
gradle 也比较简单,但是我并没有尝试gradle
sbt 其实也还可以 ,你要找到方向基本就直到套路了,经过参考别人的博客,自己搭建了个demo 验证是可以正常使用的,不过maven 版的打jar 使用还是有点问题,我尝试使用多种方式指定主函数还是有问题
两种方式的我都上传到了github上,大家如果想模仿学习 可以git clone 下来泡一泡
https://github.com/mullerhai/scala-springboot-sbt
https://github.com/mullerhai/springboot-scala-maven

另外搭建逻辑 大家可以参考这篇博客 google搜出来的
https://afoo.me/posts/2015-07-21-scala-developers-springboot-guide.html

需要主要的,现在的springboot 的版本是2.0.5 release ,之前都是1.× ,不过大同小异,

springboot 本身是支持 java 8 kotlin groovy,大家也可以尝试一下 kotlin ,kotlin 以后可能会崛起

说一下打包部署
正常来说我们做java 都会打个jar包 部署到生产环境上,
springboot 据说他打包的文件生成方式和普通的 是有差别的,确实,我点击jar 解压看到的和普通有很大差别,所以才会有一个 springboot-maven-plugin
有了这个插件所以 springboot部署成jar包比较简单
但是吧 springboot对sbt 没有特殊支持 也没有这个插件,我耗费三体还是没有实现主就是报这个错

那我们说 springboot sbt scala 部署到底如何实现呢
其实在不打jar 包的情况下还是有多种实现的,比如 git 整个项目到生产环境,直接sbt run 就可以启动整个项目
,另外还要说一下,springboot如果不启动web ,比如做定时任务,使用sbt-assembly插件 其实打成jar包也是可以使用的
还有一种就是是使用sbt-native-package插件,这个插件超级强大,简直可以用震惊!!!,他娘的,什么都可以打包,就是打不成jar包,rpm docker image zip tar.gz
macos dmg win exe,这些他都可以

参考
https://stackoverflow.com/questions/45410630/spring-boot-how-can-i-build-a-runnable-jar-with-sbt

I solved the issue by moving to sbt-native-packager

plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0")
build.sbt
scriptClasspath := Seq("*")
mainClass in Compile := Some("com.x.app.XETL")
enablePlugins(JavaAppPackaging)
Running:
packaging sbt universal:stage
starting the app: target\universal\stage\bin\x.bat

这个会生产一个脚本,直接执行这个脚本就可以,不过有时候也会失败,这个需要在

对于 maven scala springboot 项目来说,要想打成jar包运行,必须包含其中的两个maven 插件,缺一个也不行

完整的

在 IDEA 里面新建 SpringBoot 启动配置,运行后启动成功。
在 POM 目录 执行 mvn spring-boot:run 运行项目,启动成功;
线下环境 通过 java -jar jar_name.jar,运行成功;

https://stackoverflow.com/questions/38792031/springboot-making-jar-files-no-auto-configuration-classes-found-in-meta-inf

https://stackoverflow.com/questions/38792031/springboot-making-jar-files-no-auto-configuration-classes-found-in-meta-inf

用下面命令重新打包试试看

mvn clean package spring-boot:repackage -Dmaven.test.skip

在sbt 中
这两个是罪魁祸首

一引用就出问题

以上是关于springboot 使用scala 开发的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot系列之集成Scala开发API接口

SpringBoot系列之集成Scala开发API接口

使用scala搭建 Spring boot 框架

SpringBoot--Thymeleaf入门使用

使用Spring Boot开发Web项目

Spring Boot