如何轻松地在Scala / SBT项目中上课?

亚历克斯

我是Scala / SBT的新手,我很难理解如何仅尝试一个包的类和功能,以了解它们的含义,并能体会到它们。例如,使用https://github.com/plokhotnyuk/rtree2d我想做的是这样的(在项目的顶层文件夹中)

   # sbt
   > console
   > import com.github.plokhotnyuk.rtree2d.core._ 
     ...

等等。但这将无法工作,因为即使在项目中也无法找到导入。我为这个模糊的问题表示歉意,尽管我希望通过挥手可以清楚地知道我想做什么。另一种表达方式可能是,我正在寻找某种东西,例如直观的易用性,而这正是我在Python中理所当然的事情-仅使用bash和解释器。作为最后的选择,我可以创建一个单独的项目,然后导入此包并编写一个Main对象,但这对于我想做的事情来说似乎太round回事且麻烦。我还想尽可能避免使用IDE,因为我从来没有真正控制过它们,因为它们在后台进行了各种各样的事情,从而增加了很多体积和复杂性。

列维·拉姆西(Levi Ramsey)

rtree2d利用sbt的多模块功能;这样做的常见用途是将核心功能放在模块中,而在依赖于核心的模块中具有较少的核心方面(例如,更高级别的API或与其他项目的集成):所有这些模块都可以独立发布,并具有各自的功能。自己的依赖关系。

可以在build.sbt文件中看到

// The main project -- LR
lazy val rtree2d = project.in(file("."))
  .aggregate(`rtree2d-coreJVM`, `rtree2d-coreJS`, `rtree2d-benchmark`)
  // details omitted --LR

// Defines the basic skeleton for the core JVM and JS projects --LR
lazy val `rtree2d-core` = crossProject(JVMPlatform, JSPlatform)
  // details omitted

// Turns the skeleton into the core JVM project --LR
lazy val `rtree2d-coreJVM` = `rtree2d-core`.jvm

// Turns the skeleton into the core JS project --LR
lazy val `rtree2d-coreJS` = `rtree2d-core`.js

lazy val `rtree2d-benchmark` = project

在sbt中,可以使用来将命令的作用域限定于特定模块module/command,因此在交互式sbt shell(从顶层开始)中,您可以执行

> rtree2d-coreJVM/console

在JVM核心模块中运行控制台。您也可以sbt 'rtree2d-coreJVM/console'直接从顶层的shell运行,尽管这可能需要对shell引用等进行一些注意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在基于SBT的Scala项目中组织文件

来自分类Dev

如何在我的Scala项目中“嵌入” SBT插件

来自分类Dev

如何在SBT项目中添加示例?

来自分类Dev

如何列出SBT项目中的活动插件?

来自分类Dev

如何在我的 Laravel 项目中上传歌曲

来自分类Dev

干净的sbt项目中的Scala Play框架依赖项

来自分类Dev

干净的sbt项目中的Scala Play框架依赖项

来自分类Dev

在IntelliJ SBT项目中找不到运行Scala的类

来自分类Dev

如何在插件自己的项目中使用SBT插件?

来自分类Dev

如何在sbt项目中声明对Scalding的依赖?

来自分类Dev

如何在 sbt 项目中重用 Ammonite REPL 的 sc 文件?

来自分类Dev

如何在 SBT 项目中供应商依赖?

来自分类Dev

如何与Gradle并行地从特定子目录轻松构建项目?

来自分类Dev

如何轻松地一次从Chrome历史记录中删除许多项目?

来自分类Dev

如何轻松地为所有枚举项目创建案例(切换案例)?

来自分类Dev

如何在Eclipse下轻松地重新克隆多模块GIT项目?

来自分类Dev

如何在我的sbt Scala项目中添加可沉默日志记录?

来自分类Dev

如何在1个Playstore项目中上传2个不同的风味应用程序

来自分类Dev

如何在我的 android github 项目中上传演示图像

来自分类Dev

如何在具有多个子项目的SBT项目中覆盖子项目中的设置

来自分类Dev

在不同的java maven项目中使用sbt构建的scala项目的传递依赖

来自分类Dev

使用“ sbt it:test”时,为什么不执行Play / Scala项目中的集成测试?

来自分类Dev

为什么sbt会覆盖子项目中的scala版本?

来自分类Dev

SBT将不会在Play Scala项目中更新.classpath

来自分类Dev

您如何在SBT多项目中共享自定义任务

来自分类Dev

如何在子项目中引用自定义SBT设置

来自分类Dev

如何在sbt构建的所有子项目中临时更改scalaVersion?

来自分类Dev

如何在SBT(播放)多项目中使用共享配置?

来自分类Dev

如何在Intellij项目中使用SBT libraryDependencies安装库

Related 相关文章

  1. 1

    在基于SBT的Scala项目中组织文件

  2. 2

    如何在我的Scala项目中“嵌入” SBT插件

  3. 3

    如何在SBT项目中添加示例?

  4. 4

    如何列出SBT项目中的活动插件?

  5. 5

    如何在我的 Laravel 项目中上传歌曲

  6. 6

    干净的sbt项目中的Scala Play框架依赖项

  7. 7

    干净的sbt项目中的Scala Play框架依赖项

  8. 8

    在IntelliJ SBT项目中找不到运行Scala的类

  9. 9

    如何在插件自己的项目中使用SBT插件?

  10. 10

    如何在sbt项目中声明对Scalding的依赖?

  11. 11

    如何在 sbt 项目中重用 Ammonite REPL 的 sc 文件?

  12. 12

    如何在 SBT 项目中供应商依赖?

  13. 13

    如何与Gradle并行地从特定子目录轻松构建项目?

  14. 14

    如何轻松地一次从Chrome历史记录中删除许多项目?

  15. 15

    如何轻松地为所有枚举项目创建案例(切换案例)?

  16. 16

    如何在Eclipse下轻松地重新克隆多模块GIT项目?

  17. 17

    如何在我的sbt Scala项目中添加可沉默日志记录?

  18. 18

    如何在1个Playstore项目中上传2个不同的风味应用程序

  19. 19

    如何在我的 android github 项目中上传演示图像

  20. 20

    如何在具有多个子项目的SBT项目中覆盖子项目中的设置

  21. 21

    在不同的java maven项目中使用sbt构建的scala项目的传递依赖

  22. 22

    使用“ sbt it:test”时,为什么不执行Play / Scala项目中的集成测试?

  23. 23

    为什么sbt会覆盖子项目中的scala版本?

  24. 24

    SBT将不会在Play Scala项目中更新.classpath

  25. 25

    您如何在SBT多项目中共享自定义任务

  26. 26

    如何在子项目中引用自定义SBT设置

  27. 27

    如何在sbt构建的所有子项目中临时更改scalaVersion?

  28. 28

    如何在SBT(播放)多项目中使用共享配置?

  29. 29

    如何在Intellij项目中使用SBT libraryDependencies安装库

热门标签

归档