我创建了一个像Heiko Seeberger's article描述的IntelliJ Idea SBT Scala项目。
我想在这个项目中添加一个Jar库(joda-time)。这该怎么做?简单地将它们放入项目的/ lib中也无济于事。如果我在Idea的项目树中右键单击“外部库”,“新建>”是灰色的。
答案 0 :(得分:30)
在项目的IntelliJ Idea窗口中,转到File>>项目结构>>库。单击“库”选项后,将显示两个窗格。在最左侧窗格的顶部,单击绿色的“+”按钮。
答案 1 :(得分:11)
更好的方法是将非托管依赖项添加到build.sbt中,并避免将部分依赖项管理留给IDE。
有关如何定义unmanagedBase和unmanagedJars任务的详细信息,请参阅http://www.scala-sbt.org/release/docs/Library-Management.html。
答案 2 :(得分:6)
在Intellij Idea中:
在Netbeans中:
在Eclipse中:
答案 3 :(得分:6)
只需在build.sbt
中声明unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar")
并且必需的jar将出现在外部库> unmanaged-jars> Full-Jar-Name.jar中。如果修改了jar文件(在提供的路径中),这也会改变。
答案 4 :(得分:1)
对于多模块SBT项目(Intellij 2017.3.4,Scala 12.2.4,sbt 1.1.1),接受的解决方案仅在重新启动或项目刷新之前有效。的确,"项目设置 - >模块 - >依赖",然后" +"和#34; JAR或目录"发出警告"模块X从Sbt导入。重新导入"后,其配置中所做的任何更改都可能会丢失。
可能的解决方法:
@zero的建议为我工作如下:
lib
目录。build.sbt
中,在lazy var baseSettings = Seq( ... )
内添加该行
unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")
。 还没有运气?在SBT工具窗口中,在 unmanagedBase 下的模块 sbt设置中, unmanagedSourceDirectories (等等)尝试调用pop- up命令"显示值"和"检查"几次。不知何故,它可能会奏效。
从Eugene Yokota回答How can I add unmanaged JARs in sbt-assembly to the final fat JAR?另一个选项(我没有尝试)是为每个必需的模块添加一个单独的lib
目录。
希望这些步骤可以解决问题或至少帮助调试。
答案 5 :(得分:0)
在项目根目录路径中创建一个lib目录,在其中粘贴您的JAR,运行sbt reload,关闭该项目,然后再次打开它。适用于IntelliJ 2018.2.4和SBT 1.0
答案 6 :(得分:0)
转到文件->项目结构->模块
在左窗格中选择模块,然后转到“依赖关系”标签
点击+添加JAR或目录