【问题标题】:How to include geoscript as a dependency in Scala intelliJ project?如何在 Scala intelliJ 项目中包含 geoscript 作为依赖项?
【发布时间】:2017-07-20 20:37:37
【问题描述】:

Scala 和 sbt 的新手;来自 python 世界,并且对库依赖项、版本控制以及 sbt 可以和不能自动下载的内容(即需要手动将 .jar 放入 /lib 时)感到困惑。

我想在我的 Scala 应用程序中使用来自 Scala geoscript 项目 (http://geoscript.org/scala/quickstart.html) 的类。

我将 IntelliJ 与 Scala 2.11.8 一起使用。

我最终可以做类似的事情吗:

libraryDependencies += "org.geoscript" % "some-artifact" % some=version

或者这将是一个“非托管依赖”?如果是这样,最干净的方法是什么?

【问题讨论】:

    标签: scala intellij-idea sbt geotools


    【解决方案1】:

    如果一个依赖 jar 发布到 Maven Central 和其他一些存储库,当声明它为 libraryDependency 时,sbt 将能够自动解析和下载它。这是一个“托管依赖”。通常,库的文档会告诉您安装它所需的“坐标”(组 ID、工件 ID、版本)。

    从您链接的页面和 Maven 搜索来看,Geoscript 似乎没有发布,因此您必须将其添加到项目中的 /lib 文件夹中。这应该足以将它放在类路径中。您可能需要刷新项目以供 IntelliJ 获取并提供完成。

    【讨论】:

    • 感谢贾斯汀的回复。我尝试构建项目并将其打包成 .jar,并将其添加到我项目的外部库中。虽然导入语句有效(intelliJ 能够定位类),但实际上使用该库会引发很多“未解析的符号”,尽管导入成功 - 一些进一步的潜在依赖问题。无论如何,我要去 KISS,并找到一个包含在 Maven Central 中的替代地理空间项目。谢谢!
    • 如果您基于其他库打包自己的 jar 并在另一个项目中使用它,您需要将您的和其他 jar 都放在类路径中。 sbt 使用托管依赖项为您执行此操作,但未托管您必须自己完成此操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2014-04-24
    • 2023-03-27
    • 2016-01-29
    • 2014-04-04
    相关资源
    最近更新 更多