Scala中的sbt libraryDependency和import语句之间是什么关系?

问题描述 投票:0回答:2

这可能是一个简单的问题,但我一直没有找到答案。当我通过build.sbt将库导入Scala时,是否有办法根据sbt libraryDependency来推断导入语句应该是什么样子?

现在我正在尝试使用flexmark包,我可以通过在项目中添加 "com.vladsch.flexmark" % "flexmark-all" % "0.61.26", 到我的 sbt libraryDependencies 中。

然而,我并不清楚我应该如何将它实际导入到代码中--即我的导入语句应该是什么样子的。我可以从sbt libraryDependency中猜测吗?或者我应该尝试从每个项目的文档中获取它?如果我看看我还在使用什么,我看不到任何清晰的模式。过去我在不知道这些的情况下也能凑合着用,但在这个问题上我遇到了一点障碍。先谢谢大家的帮助。

scala import sbt
2个回答
2
投票

IDE可以帮助自动导入,例如在IntelliJ中,你输入名称,然后输入 Alt + Enter.

在没有IDE支持的情况下,你就必须查找ScaladocJavadoc。

另一个选择是搜索在线仓库,比如说,GitHub仓库,看看源代码中的包声明。

  1. 导航到 https:/github.comvschflexmark-java。
  2. 媒体 t 激活文件查找器

    enter image description here

  3. 开始输入名称,如果你幸运的话,它将与文件名相对应。

  4. 请看源文件顶部的包声明。

3
投票

我认为没有依赖性。

当你在Nexus上发布库时,你会被要求证明你对你作为组织使用的域名有一定的权利。所以,例如,如果你是以下域名的所有人 example.com 然后你可以在 com.example - 但Nexus或Sonatype的维护者或其他人会要求你提供一个证明,证明你拥有这个域名--例如通过设置一些DNS记录。

这与您如何命名您的软件包没有任何关系,而您的用户将如何导入它们。您可以遵循同样的命名规则,使用 com.example 作为包名。但是由于很多原因,人们可能不愿意这样做,如

  • Cats库的名字是 org.typelevel 条理 org.typelevel.cats 会很长,也很烦人,所以他们选择用简单的 cats
  • Monix已经 io.monix 纵横捭阖 monix
  • 端点有 org.julienrf 组织,而代码则是生活在 endpoints 包裹

等。

它们是完全独立的,如果有人让它保持一致,那只是因为他们选择这样使用,而不是因为他们不得不这样做。所以只要检查一下文档,也许就可以使用IntellIJ的自动导入。

© www.soinside.com 2019 - 2024. All rights reserved.