【问题标题】:How to include class library in Scala project?如何在 Scala 项目中包含类库?
【发布时间】:2017-01-17 22:47:00
【问题描述】:

我正在尝试将我从另一个 Scala 项目中提取的类合并到我可以从多个项目中引用的类库中。但是,我似乎无法从我的客户项目中引用该类。我对 IntelliJ 15.0.6 很陌生,而且我在 Scala 方面的背景仅限于脚本。

  1. 我将需要的类提取到一个名为“MyUtils”的新 Scala SBT 项目中
  2. 我在 lib 项目中添加了一个 JAR 工件并构建它。它生成了指定的 JAR 文件工件。
  3. 我创建了一个新的客户端 Scala SBT 项目来使用名为“MyApp”的类
  4. 我在客户端 IDE 项目设置中添加了对 JAR 的 Scala 库依赖项,选择 Classes 作为 JAR 包含的文件类型
  5. 我保存并重建了项目以刷新引用。
  6. 我在项目浏览器中扩展了对我导入的 JAR 的引用。它显示以下内容 元信息 MyUtils(我需要的类) 如果我在 JAR 中双击我需要的类,IDE 会显示该类的源文件
  7. 我为想要从 JAR 中的类添加了导入语句,但 IDE 无法解析它。
  8. 我添加了一行代码来创建新类的实例,我认为 IDE 工具可能会为我提供解决问题的方法,但它实际上似乎解决了该类。 (这条线不是红色的,也没有显示错误图标。)但是,如果我制作/重建,我会收到一个编译器错误,指出找不到类类型。 IDE 似乎看到了类,但没有看到编译器。

有什么办法可以解决这个问题吗?

谢谢

【问题讨论】:

    标签: scala intellij-idea


    【解决方案1】:

    由于您使用的是 SBT,我建议您使用它来管理您的库依赖项。 SBT 是一个构建工具,它将下载 jar 文件并使其在您的项目中可供您使用。

    要添加库依赖项(在本例中为 apache derby),请在“build.sbt”文件的末尾添加以下行

    libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3"
    

    您可以在此站点上找到您的依赖项 - https://mvnrepository.com/。搜索您的库名称,选择版本并从 sbt 选项卡复制脚本。

    【讨论】:

    • JAR 是本地文件,不在 maven 存储库中。
    【解决方案2】:

    我通过创建 src/main/scala/lib 并将 JAR 复制到该文件夹​​来解决了 JAR 引用问题。

    【讨论】:

      猜你喜欢
      • 2013-07-01
      • 2018-08-06
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多