MiMa:Scala库的二进制兼容性检查工具
项目基础介绍和主要编程语言
MiMa(Migration Manager)是一个用于检测Scala库之间二进制不兼容性的工具。该项目由Lightbend公司开发和维护,主要使用Scala编程语言编写。MiMa旨在帮助Scala库的维护者自动化并简化确保库版本之间二进制兼容性的过程。
项目核心功能
MiMa的核心功能是检测两个不同版本的Scala库之间的二进制不兼容性。它通过比较两个版本库的所有类文件,报告可能导致JVM在运行时抛出LinkageError(或其子类型,如AbstractMethodError)的任何二进制不兼容性。MiMa主要关注语法上的二进制不兼容性,而不考虑语义上的变化。
项目最近更新的功能
MiMa最近更新的功能包括:
-
SBT插件支持:MiMa的SBT插件现在支持SBT 1.x版本(对于SBT 0.13.x版本,可以使用v0.3.0)。通过在
project/plugins.sbt文件中添加插件配置,用户可以轻松集成MiMa到他们的SBT项目中。 -
Mill插件:MiMa现在还提供了一个用于Mill构建工具的插件,由
lolgab/mill-mima维护。用户可以通过在build.sc文件中添加相关配置来使用该插件。 -
二进制不兼容性过滤:MiMa引入了
mimaBinaryIssueFilters设置,允许用户过滤掉他们认为可以接受的二进制不兼容性报告,例如内部包中的更改。 -
签名不兼容性检查:MiMa新增了
In***patibleSignatureProblem检查,该检查比较方法的完整签名(包括泛型参数),以捕获可能的签名不兼容性。 -
基于注解的排除:MiMa现在支持通过
mimaExcludeAnnotations设置来忽略带有特定注解的类、对象和方法。该功能主要用于Scala 3。 -
条件设置
mimaPreviousArtifacts:用户现在可以根据某些条件(如Scala版本)动态设置mimaPreviousArtifacts,以适应不同的构建环境。
通过这些更新,MiMa进一步增强了其作为Scala库维护者工具的功能和灵活性,帮助用户更有效地管理库的二进制兼容性。