【问题标题】:sbteclipse doesn't create a Scala project by default?sbteclipse 默认不创建 Scala 项目?
【发布时间】:2012-11-24 20:09:56
【问题描述】:

我只想用 sbt 和 sbteclipse 为我的 scala 项目创建一个目录布局。以下是我的 sbt 文件。

import com.typesafe.sbteclipse.plugin.EclipsePlugin.EclipseKeys

name := "BGS"

organization := "com.example"

version := "1.0.0"

scalaVersion := "2.9.2"

scalacOptions ++= Seq("-deprecation")

EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource

EclipseKeys.projectFlavor := EclipseProjectFlavor.Scala

scalaSource in Compile <<= (sourceDirectory in Compile)(_ / "scala")

scalaSource in Test <<= (sourceDirectory in Test)(_ / "scala")

libraryDependencies += "org.scalatest" %% "scalatest" % "1.8" % "test"

libraryDependencies += "junit" % "junit" % "4.10" % "test"

unmanagedBase <<= baseDirectory { base => base / "lib" }

unmanagedJars in Compile <<= baseDirectory map { base => (base ** "*.jar").classpath }

在这个 sbt 文件中,我不得不使用 folling to lines 来强制创建 Scala 目录:

scalaSource in Compile <<= (sourceDirectory in Compile)(_ / "scala")

scalaSource in Test <<= (sourceDirectory in Test)(_ / "scala")

此外,从 sbt 控制台运行“eclipse”后,我将项目导入 Eclipse,但无法创建 Scala 类。 Eclipse 项目图标附有“J”字母,表明它是一个 Java 项目:-?

为什么 sbt 和 sbteclipse 默认使用 Java?

我正在运行 sbt 版本 0.12(截至 2012 年 11 月的最新版本),scala 2.9.2

供您参考,我的目标是使用 sbt 创建具有以下目录结构的工作项目:

├── build.sbt
├── lib
│   ├── biojava3-core-3.0.4.jar
├── project
│   ├── plugins.sbt
│   ├── project
│   │   └── target
│   └── target
│       ├── config-classes
│       ├── scala-2.9.2
│       └── streams
├── src
│   ├── main
│   │   ├── java
│   │   ├── resources
│   │   └── scala
│   └── test
│       ├── java
│       ├── resources
│       └── scala
├── target
│   ├── scala-2.9.2
│   │   ├── cache
│   │   ├── classes
│   │   └── test-classes
│   └── streams
│       └── compile
└── test

【问题讨论】:

    标签: scala sbt sbteclipse


    【解决方案1】:

    由于到目前为止我还没有得到任何理想的答案,所以我倾向于使用 Typesafe Stack。我删除了手动安装的 scala 和 sbt,我正在使用 Typesafe Stack 中的所有内容。当我用这种方式完成测试时,我会更新更多。

    这是我承诺的最终更新:

    我按照此链接中的说明进行操作,效果很好: http://typesafe.com/resources/typesafe-stack/downloading-installing.html

    如果有人想关注 Mac OSX 的详细信息:

    基本上,我首先按照此处的说明将 macport 切换为自制软件:

    http://bitboxer.de/2010/06/03/moving-from-macports-to-homebrew/
    

    然后我做了:

    brew install scala sbt maven giter8
    

    然后从命令行创建一个 Scala 项目:

    g8 typesafehub/scala-sbt
    

    最后我按照这里的说明添加了sbteclipse并将项目转换为eclipse:

    https://github.com/typesafehub/sbteclipse
    

    一切都如我所料。

    【讨论】:

      【解决方案2】:

      你为什么要 sbt 来创建这些导演?为什么不自己创建它们。这是一次性事件。

      你不应该需要以下任何一行

      EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
      
      EclipseKeys.projectFlavor := EclipseProjectFlavor.Scala
      
      scalaSource in Compile <<= (sourceDirectory in Compile)(_ / "scala")
      
      scalaSource in Test <<= (sourceDirectory in Test)(_ / "scala")
      

      每当我开始一个新项目时,我通常只使用mkdir -p src/main/scala

      【讨论】:

      • 如果没有这些行,"src/main/scala" 和 "src/test/scala" 将不会在我的机器 (Mac OSX) 中创建。我想这样做是为了了解更多关于 sbt 的信息,并最终用一个 sbt 配置做更高级的东西。谷歌搜索显示,以前的 sbt 版本允许用户通过问题和答案创建项目结构。在 0.12 版本中不是这种情况。它似乎自动做更多的事情,但未能提供让用户开始的第一个基本步骤:-(
      • 我不明白自己创建这些目录有什么难的。一旦它们被创建,它们就不会消失。
      • 1.假设我正在尝试测试 sbt 功能。我很想看看 sbt 配置文件是如何工作的。
      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      相关资源
      最近更新 更多