Scala 3 迁移指南

Scala2 和 Scala3 之间的 Scaladoc 设置兼容性

语言

当前页面陈述了 scaladoc 设置的状态。相关的 Github 问题可在此处找到,以供 讨论

Scala2 Scala3 说明 注释 是否已实现?
-doc-format _ 选择文档呈现的格式。 实际上,旧 scaladoc 仅支持 html,因此在某种程度上与仅提供 html 的新 scaladoc 一致
-doc-title -project Scaladoc 站点的总体名称 #11965 中别名
-doc-version -project-version   #11965 中别名
-doc-footer -project-footer 每个 Scaladoc 页面上的页脚,默认情况下为 EPFL/Lightbend 版权声明。可以用自定义页脚覆盖。 已通过 #11965 修复
-doc-no-compile _ 包含应解析为文档字符串的源的目录,无需编译(例如 AnyRef.scala) 我们不需要它,因为我们使用 -Ydocument-synthetic-types 标志对合成类型采用了完全不同的方法
-doc-source-url -source-links 用于链接到源文件的 URL 模式,支持一些变量… Scala3 实现提供了更丰富的语法。您可以在此 表格下方找到迁移步骤。
-doc-external-doc -external-mappings 描述外部依赖文档位置的链接。 Scala3 实现提供了更丰富的语法。您可以在此 表格下方找到迁移步骤。
-jdk-api-doc-base -external-mappings 用于链接 Java API 引用网址。 您可以通过 -external-mappings 指定 jdk,因为它们是通用设置。您可以在此 表格下方找到迁移步骤。
-doc-generator _ 将用于生成文档的 doclet 类的完全限定名称。 我们在 Scala3 中不需要此项
-doc-root-content -doc-root-content 应从中导入根包文档的文件。  
-implicits _   我们在 Scala3 中不需要此项 - 上下文扩展方法始终在 Scala 3 中记录
-implicits-debug _   我们在 Scala3 中不需要此项
-implicits-show-all _   我们在 Scala3 中不需要此项
-implicits-sound-shadowing _   我们在 Scala3 中不需要此项
-implicits-hide _   我们在 Scala3 中不需要此项
-diagrams _   我们在 Scala3 中不需要此项
-diagrams-debug _   我们在 Scala3 中不需要此项
-diagrams-dot-path _   我们在 Scala3 中不需要此项
-diagrams-max-classes _   我们在 Scala3 中不需要此项
-diagrams-max-implicits _   我们在 Scala3 中不需要此项
-diagrams-dot-timeout _   我们在 Scala3 中不需要此项
-diagrams-dot-restart _   我们在 Scala3 中不需要此项
-author -author   已通过 #11965 修复
-raw-output _   我们在 Scala3 中不需要此项
-no-prefixes _   我们在 Scala3 中不需要此项
-skip-packages -skip-packages    
-no-link-warnings _   尚未实现
-expand-all-types _   已删除设置
-groups -groups    
-no-java-comments _   我们在 Scala3 中不需要此项
-doc-canonical-base-url -doc-canonical-base-url 用作前缀的基本网址,并为所有页面添加 canonical 网址。搜索引擎可能会使用规范网址来选择您希望人们在搜索结果中看到的网址。如果未设置,则不会生成规范网址。 已通过 #11965 修复
-private -private 显示所有类型和成员。除非指定,否则仅显示公共和受保护的类型和成员。 已通过 #11965 修复
_ -siteroot   我们不会将其反向移植到旧 scaladoc 不适用
_ -project-logo   我们是否应该将其反向移植到旧 scaladoc? 不适用
_ -comment-syntax   我们不会将其反向移植到旧 scaladoc 不适用
_ -revision   我们是否应该将其反向移植到旧 scaladoc? 不适用
_ -social-links   我们是否应该将其反向移植到旧 scaladoc? 不适用
_ -skip-by-id   我们不会将其反向移植到旧 scaladoc 不适用
_ -skip-by-regex   我们不会将其反向移植到旧 scaladoc 不适用
_ -snippet-compiler-args   我们不会将其反向移植到旧 scaladoc 不适用
_ -Ydocument-synthetic-types 记录固有类型,例如 Any、Nothing。设置仅对 stdlib 有用  

源链接用于指向 github 或 bitbucket 等远程存储库中的源代码。希望新语法几乎是旧语法的超集。要迁移到新的 scaladoc 语法,请确保您不使用以下任何变量:€{TPL_OWNER}€{FILE_PATH_EXT}。否则,您必须使用其他 variables 重写源链接,或者可以使用新语法,您可以在 Scaladoc 文档 中阅读更多相关信息。请注意,新语法允许您指定文件路径的前缀以匹配特定网址,以防您的源代码分散在不同的目录甚至不同的存储库中。

外部映射

此设置是 javadoc/scaladoc 旧设置的通用形式。

示例外部映射为

-external-mappings:.*scala.*::scaladoc3::https://scala-lang.org.cn/api/3.x/,.*java.*::javadoc::https://docs.oracle.com/javase/8/docs/api/

映射的形式为“<regex>::[scaladoc3|scaladoc|javadoc]::<path>”。您可以提供多个映射,用逗号分隔,如示例所示。

鉴于旧语法是

  • 对于 scaladoc - prefix#url
  • 对于 javadoc - 仅 URL

必须采用与完全限定名称匹配的正则表达式(对于 javadoc,它可以是通配符,如 java.*),然后使用双冒号 :: 将其与 3 种可用文档格式之一连接,然后再次追加 ::,再提供外部文档托管的 URL。

此页面的贡献者