scala二进制与scala完整版本约定

scala二进制与scala完整版本约定,scala,Scala,我正在准备以下sbt页面: 但是我发现文件不是很好,我想澄清一些我认为我理解但在文件中没有明确说明的事情 公约的目的是什么: CrossVersion.binary(41; CrossVersion.full(41; 换句话说,我想要一个简单的例子 。 及 _ 是: 二进制版本示例2.12 Scala版本示例2.12.12 这就是二进制版本和scala版本之间的区别吗?后者包括编译器访问权限,而不是什么 编辑1 页面中给出了以下示例: 这些是等效的: "a" %% &quo

我正在准备以下sbt页面:

但是我发现文件不是很好,我想澄清一些我认为我理解但在文件中没有明确说明的事情

公约的目的是什么:

CrossVersion.binary(41;

CrossVersion.full(41;

换句话说,我想要一个简单的例子

_

是:

  • 二进制版本示例2.12
  • Scala版本示例2.12.12
  • 这就是二进制版本和scala版本之间的区别吗?后者包括编译器访问权限,而不是什么

    编辑1 页面中给出了以下示例:

    这些是等效的:

    "a" %% "b" % "1.0"
    ("a" % "b" % "1.0").cross(CrossVersion.binary)
    
    这将覆盖始终使用完整Scala版本而不是二进制Scala版本的默认设置:

    ("a" % "b" % "1.0").cross(CrossVersion.full)
    

    我只理解第二句话的意思,因为我一直在使用第一句话,并且知道它的作用。但这只是一个猜测,我只是想通过一个例子来明确确认,我相信这对任何新的scala开发人员都有好处。

    因此
    2.12.12
    是一个完整版本(以及补丁版本),
    2.12
    是一个二进制版本

    二进制版本很有用,因为使用不同但二进制兼容版本编译的库可以在项目中使用,而不会出现任何问题。例如,如果您使用的是Scala
    2.13.3
    ,则可以使用使用
    2.13.0
    2.13.4
    编译的库,但不能使用
    2.12.12
    编译的库
    完整版本对于访问不保留二进制兼容性的底层编译器API非常有用,例如类投影仪之类的编译器插件


    顺便说一句,为了好玩,
    2.13.0-RC1
    是另一个完整版本,但不是补丁版本。

    因此
    2.12.12
    是完整版本(以及补丁版本),
    2.12
    是二进制版本

    二进制版本很有用,因为使用不同但二进制兼容版本编译的库可以在项目中使用,而不会出现任何问题。例如,如果您使用的是Scala
    2.13.3
    ,则可以使用使用
    2.13.0
    2.13.4
    编译的库,但不能使用
    2.12.12
    编译的库
    完整版本对于访问不保留二进制兼容性的底层编译器API非常有用,例如类投影仪之类的编译器插件


    顺便说一句,只是为了好玩,
    2.13.0-RC1
    是另一个完整版本,但不是补丁版本。

    我知道你已经回答了我问过的类似问题,我很理解你的答案。我只是觉得文件不够清楚。我想有人来确认一下scala版本和scala二进制版本这两种说法之间的区别,并为每种版本提供一个示例,allI很乐意接受这一官方答案。这可以帮助其他人。否则,感谢您的权威确认。像往常一样,非常有帮助的@LuisMiguelMejíaSuárezI知道你已经回答了我问过的类似问题,我很理解你的答案。我只是觉得文件不够清楚。我想有人来确认一下scala版本和scala二进制版本这两种说法之间的区别,并为每种版本提供一个示例,allI很乐意接受这一官方答案。这可以帮助其他人。否则,感谢您的权威确认。一如既往,非常有帮助@LuisMiguelMejíaSuárez