2017-07-18 53 views
3

Scala和sbt的新手;来自Python世界,并且被图书馆依赖关系,版本控制以及可以并不能自动下载的内容(即.jar需要手动放置在/ lib中)所迷惑。如何将geoscript作为依赖包含在Scala intelliJ项目中?

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

我使用IntelliJ与Scala 2.11.8。

可我最终做这样的事情:

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

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

回答

1

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

在您链接的页面和Maven搜索中,它看起来像Geoscript没有发布,所以您将不得不将它添加到项目中的/lib文件夹中。这应该足以将其放入类路径中。您可能需要刷新IntelliJ的项目才能提取并提供完成项。

+0

感谢贾斯汀的回应。我试图构建并将项目打包到.jar中,并将其添加到我的项目的外部库中。尽管导入语句有效(intelliJ能够找到这些类),但实际上使用该库时,尽管导入成功了,但还是会抛出许多“未解决的符号” - 还有一些潜在的依赖关系问题。无论如何,我要去KISS,并在Maven Central找到一个替代的地理空间项目。谢谢! – EyeWrite

+0

如果您基于其他库打包自己的jar并在另一个项目中使用它,则需要将您的和另一个jar放在classpath中。 sbt为你提供托管的依赖性,但是在unmanged中你必须自己做 –

相关问题