如何在IntelliJ IDEA中设置一个使用git库的Scala项目

3
我想尝试使用IntelliJ IDEA,但我不知道如何开始。
我只是想创建一个新项目,以Finagle Echo Server为起点,它托管在github上。
假设我在Mac上进行了干净的安装。 我安装了IDEA并添加了Scala和SBT插件。 我应该采取哪些步骤来创建一个项目,该项目使用Finagle并运行http服务器示例中的代码?
请帮忙。 我意识到我的问题听起来像一个愚蠢的问题,但是有太多不同的方法可以使用Scala项目从SBT命令行,Scala-IDE,Idea等工作,我简单地不知道如何让舒适的开发环境运转。

为什么术语“git”只出现在标题中而不是正文中? - ziggystar
他可能是指 GitHub(库)。 - milan
你的程序库可以通过Maven仓库获取吗?你需要一个基于SBT的项目还是仅需要一个IDEA项目即可?你需要编辑程序库的源代码还是仅需要使用该程序库? - ziggystar
@ziggystar 我只想使用库。这个项目不必基于 SBT。我正在寻找使用 Github 上的 Scala 项目的正确步骤,以便我可以通过真实世界的例子学习 Scala。但是对于工作,我确实需要使用 Finagle 库创建一个 http 网关,所以这是一个完美的机会。 - Jack
Finagle的存储库似乎被隐藏在某个地方托管,因此它比普通依赖项更复杂。也许这个链接可以帮助:https://github.com/bmatheny/finagle-starter-kit - ziggystar
2个回答

2
一个不需要使用SBT的手动解决方案可能更加直接,考虑到SBT版本问题。但你仍然需要使用SBT来构建finagle。
以下是实现步骤:
  1. 按照步骤1安装SBT运行脚本(它也可以处理SBT 0.7项目)。
  2. 手动克隆git://github.com/twitter/finagle.git。
  3. 进入finagle目录,输入"sbt package"。其依赖项应该在lib_managed下,而finagle jar文件本身应该在target/或其他位置(只需注意命令输出中的位置即可)。
  4. 从头开始创建一个IDEA项目,并手动添加finagle jar及其依赖项(在Project Structure->Dependencies下)。

您下面描述的过程对于其他项目非常好。在Finagle仍在使用SBT 0.7.5时,这个答案非常好。感谢您同时提供David。 - Jack

2
这个答案假设你想使用SBT。另外,我应该说明一下,这是我的常规操作,但我没有确认它是否适用于finagle。

0. 安装 IDEA,带有 Scala 和 SBT 插件。 (由 OP 已完成;这里是为其他人提供)

1. 安装 SBT(自动方法)。将 这个方便的 sbt 运行脚本 复制到一个方便的位置(或者,如果你想保持更新,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项目。创建一个目录来存储你的项目,其中包含一个名为“project”的目录。按照以下方式创建project/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 文档以获取有关配置项目的更多选项。请注意,我们必须在此处使用 完整配置(而不仅仅是 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可能会在其上出现问题。你可以尝试迁移它,但考虑到我的其他答案,这可能不值得麻烦。 - David Soergel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接