如何将Jar库添加到IntelliJ Idea SBT Scala项目中?
我已经创建了一个像Heiko Seeberger's article描述的IntelliJ Idea SBT Scala项目。如何将Jar库添加到IntelliJ Idea SBT Scala项目中?
我想添加一个Jar库(joda-time)在这个项目中使用。这个怎么做?简单地把它们放到项目的/ lib中并没有帮助。如果我在Idea的项目树中右键单击“外部库”,“新建”将变为灰色。
在项目的IntelliJ Idea窗口中,找到File >> Project structure >> Libraries。点击该库选项后,将出现两个窗格。在最左侧窗格的顶部,点击绿色的“+”按钮。
在IntelliJ IDEA的:
- 文件>项目结构>库
在NetBeans:
- 文件>项目属性>库
在Eclipse:
- 右键单击项目>属性> Java构建路径>库
我认为将jar文件添加到build.sbt是一个更好的选择。 – Daniel 2015-06-10 21:31:16
更好的方式来做到这一点是你的非托管的依赖添加到您的build.sbt和离开你的依赖管理的一部分,切莫你骑。
有关如何定义unmanagedBase和unmanagedJars任务的详细信息,请参阅http://www.scala-sbt.org/release/docs/Library-Management.html。
lib文件夹被自动添加到unmanagedJars,这是由IDEA支持吗? – Edmondo1984 2016-05-28 17:17:47
是的,Idea查找unmanagedJars中提到的库,并正确执行所有导航/突出显示。如果你的意思是构建,Idea使用Sbt本身(捆绑或外部)来构建Sbt项目,所以他们不需要额外的支持。 – mcyalcin 2016-06-07 18:30:10
在build.sbt
unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar")
只需要声明这一点,所需的jar将出现在外部库>非托管罐>全将罐Name.jar。如果jar文件(在提供的路径中)被修改,这也会改变。
对于多模块SBT项目(Intellij 2017.3.4,Scala 12.2.4,sbt 1.1.1),接受的解决方案只能在重新启动或项目刷新之前运行。事实上,“项目设置 - >模块 - >依赖关系”,然后“+”和“JAR或目录”会给出警告“模块X是从Sbt导入的,任何对其配置所做的更改可能会在重新导入后丢失”。
可能的解决方法:
的建议通过@zero为我工作如下:
- 把JAR(S)到项目的
lib
目录。 - 在
build.sbt
,里面lazy var baseSettings = Seq(...)
添加行unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")
。 -
还没有运气?在SBT工具窗口中,模块的sbt设置下的unmanagedBase,非托管源目录(等)尝试调用弹出命令“Show value”和“Inspect”几次。不知何故,它可能会奏效。
从Eugene Yokota对How can I add unmanaged JARs in sbt-assembly to the final fat JAR?的回答中可以看出,另一个选项(我没有尝试)是为每个需要的模块添加一个单独的
lib
目录。
希望这些步骤能够解决问题或者至少有助于调试。
这似乎不适用于版本13.1.5。我添加.jar文件。直到下一次我重新启动IntellJ,或者如果我修改build.sbt文件,它都能正常工作。然后,它只是“消失”。 – chaotic3quilibrium 2014-10-23 22:39:23
同上。与我一样 – 2015-03-13 11:57:49