如何在Scala中使用软件包?

如何在Scala中使用软件包?,scala,Scala,我目前正在学习Scala,发现了一种叫做squant的东西,它可以做各种很酷的事情,比如转换。问题是:我不知道如何使用它 我有RubyGems和node包的背景,所以我希望Scala也有类似的方面 我发现这个词没有多大帮助,所以我开始搜索不同的词。我发现这是一个用“sbt”来解决这个问题的方法。我已经知道如何使用scalac编译文件,并使用scala运行它们,所以在我做了一些研究之前,我对sbt有点困惑。我试图按照说明将libraryDependencies替换为“com.squants”%%“

我目前正在学习Scala,发现了一种叫做squant的东西,它可以做各种很酷的事情,比如转换。问题是:我不知道如何使用它

我有RubyGems和node包的背景,所以我希望Scala也有类似的方面

我发现这个词没有多大帮助,所以我开始搜索不同的词。我发现这是一个用“sbt”来解决这个问题的方法。我已经知道如何使用
scalac
编译文件,并使用
scala
运行它们,所以在我做了一些研究之前,我对
sbt
有点困惑。我试图按照说明将
libraryDependencies
替换为
“com.squants”%%“squants”%%“0.4.2”
,但这只会在sbt控制台中引发大量错误。最终,我希望包与我的代码一起工作,而不是在控制台中

然后我在一个名为的网站上找到了这个框架。我从这个网站下载了一个jar文件,但不知道如何在Scala中使用jar文件(如果可能的话?)。搜索结果显示了一些结果

作为参考,这是我用来测试包的scala文件:

import com.squants._

object HelloSquants {
    def main(args: Array[String]): Unit = {
        val x: Power = Kilowatts(12)
        val y: Power = Megawatts(0.023)
        val sum = x + y
        println(x + " plus " + y + " equals " + sum)
    }
}
让这个软件包在Scala中工作的正确方法是什么?

有很多问题

首先,你有点混淆术语。包是代码的名称空间。你可以写一些代码

package foo {
  class Apple...
}

package bar {
  class Apple...
}
然后,根据要使用的Apple类,可以导入foo.Apple或bar.Apple。Foo和bar是软件包。。你不是说包裹

Sbt是学习的必要工具。Scala项目变得越来越大,你会得到一堆库。我想当你说包时,你的意思是图书馆

所以,是的,遵循一些简单的SBT教程。。。一个好的起点是

添加

"com.squants"  %% "squants"  % "0.4.2"

sbt是正确的,它将下载squants库,并将其包含在编译路径中。但是,它不会自动将其添加到您的跑步路径中。为此,我建议您使用idea编写代码,这样它就可以看到build.sbt文件,并为您的类路径添加正确的内容。。然后您应该可以右键单击并运行代码。

感谢您的澄清。我将开始学习sbt,看看我能去哪里。另一个问题:你说Scala项目会变得越来越大——我目前正在用scalac一次编译一个文件,所以我假设sbt会让我根据Scala文件的函数等将大量的Scala文件放在多个目录中?谢谢对SBT compile编译所有scala文件。它也很智能,只编译自上次编译以来更改的文件