我想将Apache commons库添加到我的Scala项目中。在将其移至SBT之前,只需将其添加到我的InteliJ项目中的库或全局库设置即可。现在我已经转移到它不再解决,我得到错误。
如何在InteliJ中添加本地jar库作为SBT依赖?
答案 0 :(得分:2)
您需要确保SBT能够找到该依赖项。按照here所述,将非托管依赖项添加到项目中的标准方法。引用该参考:
非托管依赖项
大多数人使用托管依赖项而不是非托管依赖项。但 开始时,非托管可以更简单。
非托管依赖项的工作原理如下:将jar添加到lib ,它们会 放在项目类路径上。其他不多了!
您可以放置测试罐,例如ScalaCheck,specs和ScalaTest lib也是。
lib中的依赖关系遍历所有类路径(用于编译,测试,运行, 和控制台)。如果你想改变其中一个的类路径 那些,您可以在Compile中调整dependencyClasspath 例如,运行时中的dependencyClasspath。
没有什么可以添加到build.sbt 来使用非托管依赖项, 虽然你可以改变unmanagedBase键,如果你想使用 不同的目录而不是lib。
使用custom_lib而不是lib:
unmanagedBase:= baseDirectory.value /" custom_lib"
baseDirectory是项目的根目录,所以在这里你要改变 unmanagedBase取决于使用特殊值的baseDirectory 在更多种设置中解释的方法。
还有一个unmanagedJars任务列出了来自的jar unmanagedBase目录。如果你想使用多个目录或 做一些复杂的事情,你可能需要更换整体 unmanagedJars任务与一个做其他事情的任务。
要测试它是否正常运行,只需在外部运行SBT(在cmd之外的IntelliJ之外)并执行update
或compile
任务。如果您的库在代码中使用并且没有错误,那么SBT很高兴。之后只需使用"导入项目"在IntelliJ中选择"使用自动导入"其中一个向导步骤中的选项。
答案 1 :(得分:1)
将此添加到您的build.sbt:
libraryDependencies += "org.apache.commons" % "commons-math3" % "3.5"