README.md
smt
Project Stage | CI | Codecov |
---|---|---|
Scaladex | Jetbrains Plugin | Nexus Snapshots |
---|---|---|
环境
- Java 8+
- Scala 2.11.12、2.12.14、2.13.8
文档
详细文档 https://bitlap.org/lab/smt
如何使用
添加库依赖,下面是如何在 SBT 中使用
在gradle,maven中,通常
smt-annotations
被替换为smt-annotations_2.12
,其中,2.12
表示Scala版本号。
cache
- 一个统一的缓存适配器。
- 零依赖,类型安全。
"org.bitlap" %% "smt-cache" % "<VERSION>" // 从0.6.0开始
common
- 存放一些很通用的工具类。
- 对象转换器
transform
- 零依赖,类型安全。
-
Transformer
将样例类From
的对象转变为样例类To
的对象。 -
Transformable
使用宏派生任意类型的Transformer
实例。
"org.bitlap" %% "smt-common" % "<VERSION>" // 从0.6.0开始
csv
-
Converter
基础的CSV转换器。 -
CsvableBuilder
支持以自定义的方式将Scalacase class
转化为一行CSV字符串。 -
ScalableBuilder
支持以自定义的方式将一行CSV字符串转化为Scalacase class
。 -
CsvFormat
支持自定义格式和TSV文件。 - 零依赖,类型安全。
"org.bitlap" %% "smt-csv" % "<VERSION>"
csv-derive
-
DeriveCsvConverter
为Scalacase class
自动派生Converter
实例。
"org.bitlap" %% "smt-csv-derive" % "<VERSION>"
annotations
@toString
@builder
@log
@apply
@constructor
@equalsAndHashCode
@elapsed
@javaCompatible
Intellij插件
Scala-Macro-Tools
。
"org.bitlap" %% "smt-annotations" % "<VERSION>"
该库已发布到maven中央仓库,请使用最新版本。仅将本库导入构建系统(例如gradle、sbt)是不够的。你需要多走一步。
Scala 2.11 | Scala 2.12 | Scala 2.13 |
---|---|---|
导入 macro paradise 插件 | 导入 macro paradise 插件 | 开启 编译器标记 -Ymacro-annotations
|
addCompilerPlugin("org.scalamacros" % "paradise_<your-scala-version>" % "<plugin-version>")
<your-scala-version>
必须是Scala版本号的完整编号,如2.12.13
,而不是2.12
。
如果这不起作用,可以谷歌寻找替代品。
在scala 2.13.x
版本中,macro paradise的功能直接包含在scala编译器中。然而,仍然必须启用编译器标志-Ymacro annotations
。
特别感谢
This project is developed using JetBrains IDEA. Thanks to JetBrains for providing me with a free license, which is a strong support for me.