val scala3Version = "3.1.3"
lazy val root = project
.in(file("."))
.enablePlugins(NativeImagePlugin)
.settings(
name := "meo1",
version := "0.1.0-SNAPSHOT",
scalaVersion := scala3Version,
libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test
)
接着我们运行sbt命令
进入之后,我们执行nativeImage
编译如果没报错,你最终会得到一个执行文件,在target/native-image目录下面
cd target/native-image 运行应用程序
$ ./meo1
Hello world!
I was compiled by Scala 3. :)
$ otool -L ./meo1
./meo1:
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1858.112.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1858.112.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
Scala3是最新一代的Scala, 经过重新设计的API,让Scala3可玩性大大提升,跟Python语法非常接近了。但是性能更好。
重点不是这个,我们分享一下如何用sbt创建一个scala 3的项目,然后编译为机器原生镜像 nativeImage
我的机器是macos 12
安装Scala3我是通过cs 工具,安装了cs工具,执行
cs setup
,它就会把各种需要的东西都装好先用cs工具装sbt,我执行
cs install sbt
装了sbt,我们就可以创建项目了
我们执行
sbt new scala/scala3.g8
创建一个scala3的新项目,然后我们取名为 meo1
我们进入到项目目录
cd meo1
注意,我们需要建立一个配置文件,项目的文件路径为:project/plugins.sbt
内容如下
然后我们修改build.sbt也就是项目的根目录下面的构建文件,在.settings上面加入
最终的构建文件像这样
接着我们运行sbt命令 进入之后,我们执行
nativeImage
编译如果没报错,你最终会得到一个执行文件,在target/native-image目录下面cd target/native-image
运行应用程序好的,现在你已经掌握了如何用Scala 3 ,快速开发并编译自己的原生可执行镜像了。非常棒,就像魔法一样。