【问题标题】:How to set up a scala project in IntelliJ IDEA that uses git libraries如何在 IntelliJ IDEA 中设置使用 git 库的 scala 项目
【发布时间】:2012-02-15 00:12:37
【问题描述】:

我想尝试一下 IntelliJ IDEA,但我不知道如何开始。

我只是想创建一个使用托管在 github 上的 Finagle Echo Server 作为起点的新项目。

假设我开始在 Mac 上进行全新安装。我安装了 IDEA 并添加了 Scala 和 SBT 插件。我应该采取哪些步骤来创建一个使用 Finagle 并运行 http 服务器示例中的代码的项目?

请帮忙。我意识到我的问题听起来像是一个愚蠢的问题,但是从 SBT 命令行、Scala-IDE、Idea 等使用 Scala 项目有很多不同的方法,我根本不知道如何获得一个舒适的开发环境.

【问题讨论】:

  • 为什么git这个词只出现在标题而不出现正文?
  • 他可能指的是 github(库)
  • 你的库可以通过 maven repo 获得吗?你想要一个基于 SBT 的项目还是只拥有一个 IDEA 项目就足够了?您是要编辑库的源代码还是只想使用库?
  • @ziggystar 我只想使用这个库。该项目不必基于 SBT。我正在从 Github 寻找使用 Scala 项目的正确程序,以便我可以使用真实世界的示例来学习 Scala。然而,对于工作,我确实需要使用 Finagle 库创建一个 http 网关,所以这是一个绝佳的机会。
  • finagle repo 似乎是一个隐藏的托管 somwhere,因此它比普通依赖项更复杂。也许这个链接有帮助:github.com/bmatheny/finagle-starter-kit

标签: scala intellij-idea finagle


【解决方案1】:

考虑到 SBT 版本控制问题,不需要您在项目中使用 SBT 的手动解决方案可能更直接。不过,您仍将使用 SBT 来构建 finagle。

  1. 按照上述步骤 1 安装 SBT 运行程序脚本。 (它也可以处理 SBT 0.7 项目)。
  2. 手动git clone git://github.com/twitter/finagle.git
  3. cd 到 finagle 目录并输入“sbt package”。它的依赖项应该最终在 lib_managed 下,并且它应该在 target/ 或类似的下生成 finagle jar(只需注意命令输出中的位置)。
  4. 从头开始创建一个 IDEA 项目,并手动将依赖项添加到 finagle jar 及其依赖项(在 Project Structure->Dependencies 下)。

【讨论】:

  • 您在下面描述的过程非常适合其他项目。这个答案对 Finagle 来说很棒,而他们仍在使用 SBT 0.7.5。谢谢你给大卫。
【解决方案2】:

此答案假定您要使用 SBT。另外,我应该确认这是我的常用程序,但我还没有确认它特别适用于 finagle。

0。安装带有 Scala 和 SBT 插件的 IDEA。(由 OP 完成;此处供其他人使用)

1.安装 SBT(自动方法)。this handy sbt runner script 复制到方便的位置(或者,如果您想保持最新,git clone https://github.com/paulp/sbt-extras.git 并将脚本符号链接到 ~/bin),并确保它是可执行的.它会根据你的 build.properties 中指定的 sbt.version 自动下载它需要的任何东西。

2。安装 sbt-idea。 sbt-idea 是一个 SBT 插件(不是 IDEA 插件),可以从 SBT 项目生成 IDEA 模块文件。全局安装它很方便,因为它不是特定于项目的。您不必手动下载任何内容;只需将其添加到 ~/.sbt/plugins/build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "0.11.0")

3.创建 SBT 项目。 为您的项目创建一个目录,并在其中创建一个“项目”目录。如下创建项目/Build.scala:

import sbt._

object MyBuild extends Build {
  lazy val root = Project("root", file(".")) dependsOn finagle
  lazy val finagle = RootProject(uri("git://github.com/twitter/finagle.git"))
  }

有关重新配置项目的更多选项,请参阅 SBT 文档。注意我们必须在这里使用Full Configuration(不仅仅是build.sbt)来表达github依赖。

创建 project/build.properties 也是一个好主意:

sbt.version=0.11.2
project.version=0.1
build.scala.versions=2.9.1

4.生成 IDEA 项目。 cd 到包含基于 sbt 的项目的目录。输入“sbt gen-idea”。如果一切顺利,该目录现在将包含“.idea”和“.idea_modules”子目录。

5.在 IDEA 中打开项目。 可能需要在项目设置中修复目标 JDK 版本。除此之外,项目应该已经准备就绪,所有源路径、库依赖项等都已正确配置。

【讨论】:

  • 嗯,我刚刚注意到 finagle 使用 SBT 0.7,所以 SBT 0.11 可能会卡住它。我想你可以尝试迁移它,但考虑到我的其他答案,这可能不值得麻烦。
猜你喜欢
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 2012-03-15
  • 2011-04-17
  • 2020-10-11
相关资源
最近更新 更多