【问题标题】:Tasks stuck with sbt 1.0sbt 1.0 卡住的任务
【发布时间】:2018-03-23 07:06:03
【问题描述】:

按照“https://www.coursera.org/learn/scala-spark-big-data/supplement/R7FJ9/eclipse-tutorial”课程,我正在尝试通过添加 sbteclipse 插件从 sbt 创建一个 eclipse 项目。

sbt new scala/hello-world.g8

cd hello-world

echo 'addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")' > project/plugins.sbt

sbt> eclipse

它应该持续一分钟并成功返回几个,但它却保持静止,卡住了。我收到的消息是

Java HotSpot(TM) 64 位服务器虚拟机警告:忽略选项 MaxPermSize=256m; 8.0 中移除了支持

我已经安装了 sbt 1.0.2,它失败了,然后我会安装 sbt 0.13.16,但仍然失败。检查 sbt 版本它说它是 1.0.2(尽管我已经卸载了 sbt 1.0.2 来安装旧版本)。

检查https://github.com/typesafehub/sbteclipse/issues/346 看起来这是一个全新的问题,假设通过在 project/build.properties 中键入 sbt.version=0.13.16 得到修复,但即使在此之后问题仍然存在。我不知道问题是否仍然存在,因为这是针对 Mac 的修复程序并且我正在使用 Windows 10,或者解决方案是否针对 sbt.version=0.13.15 而我使用的是 sbt.version=0.13.16。

检查 \scala hello world\hello-world\eclipse 文件:

[错误] [C:\Users\israel.rodriguez\Documents\eclipse\scala hello world\hello-world\project\plugins.sbt]:1: 未闭合字符文字

项目加载失败:(r)etry、(q)uit、(l)ast 还是 (i)gnore? 终止批处理作业 (Y/N)?

检查我发现的\scala hello world\hello-world\project\plugins.sbt:

'addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")'

删除开头和结尾的“”时。 \scala hello world\hello-world\eclipse 文件说:

[info] 加载项目定义 C:\Users\israel.rodriguez\Documents\eclipse\scala 你好 世界\你好世界\项目

[info] 将当前项目设置为 hello-world(在构建文件中:/C:/Users/israel.rodriguez/Documents/eclipse/scala%20hello%20world/hello-world/)

它会永远存在。在 Windows shell 上显示相同的消息:

Java HotSpot(TM) 64 位服务器虚拟机警告:忽略选项 MaxPermSize=256m; 8.0 中移除了支持

我的问题是,这里有什么问题? ,以及如何解决或解决此问题。很抱歉这个菜鸟问题,我是第一次接触 sbt、scala 还是 spark。

【问题讨论】:

  • 看来这个bug在sbt eclipse版本中。您是否正在运行带有错误修复的 sbt eclipse 版本?
  • 除了更新您的插件版本(看起来它会修复它)之外,您还可以通过在 shell 中执行 set logLevel := Level.Debug 来打开日志记录以更好地了解正在发生的事情。

标签: eclipse scala sbt


【解决方案1】:

我遇到了与上述相同的问题。这是我克服它的方法。

首先你遵循的步骤没有问题,除了:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")

使用the sbt plugin form 的最新版本,即:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")

最新版本处理了控制台挂起问题as described here,也不需要在开头和结尾使用''了。

步骤:1.从here(windows sbt-1.0.4.msi)下载并安装sbt

步骤 2. 进入 cmd 提示符并输入sbt about,它会显示类似这样的内容

C:\Users\rajnish.kumar>sbt about
"C:\Users\rajnish.kumar\.sbt\preloaded\org.scala-sbt\sbt\"1.0.4"\jars\sbt.jar"
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[warn] Executing in batch mode.
[warn]   For better performance, hit [ENTER] to switch to interactive mode, or
[warn]   consider launching sbt without any commands, or explicitly passing 'shell'
[info] Loading project definition from C:\Users\rajnish.kumar\project
[info] Set current project to rajnish-kumar (in build file:/C:/Users/rajnish.kumar/)
[info] This is sbt 0.13.15
[info] The current project is {file:/C:/Users/rajnish.kumar/}rajnish-kumar 0.1-SNAPSHOT
[info] The current project is built against Scala 2.10.6
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, sbt.plugins.Giter8TemplatePlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.6

我不知道为什么它说“这是 sbt 0.13.15”;如果有人知道请answer it here

第 3 步。转到您的工作区表单 cmd 提示符并键入并点击 sbt new sbt/scala-seed.g8,在询问时键入项目名称(例如 hello)。

第 4 步。现在移动到您的项目目录,即cd hello

第 5 步。现在输入echo addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4") > project/plugins.sbt

第 6 步。确保您在 hello 项目中,然后不要调用 sbt > eclipse(如果您这样做,那么它将陷入与您得到的相同的无限循环)只调用 @987654333 @ 它将在默认端口上启动服务器。

步骤 7. 现在输入eclipse,现在它将开始下载所有依赖项,最终将显示Successfully created Eclipse project files for project(s):

步骤 8. 正常导入项目 (hello) 到 Eclipse,它会工作。请不要单独调用sbt > eclipse,先调用sbt,然后再调用Eclipse。

【讨论】:

  • 非常感谢。我永远不会想出单独的 sbt 和 eclipse。
  • @jolly 小丑我很高兴它帮助了你
【解决方案2】:

当我开始阅读有关 scala 的内容时,我遇到了同样的问题。 关于 [\plugins.sbt]:1: unclosed character literal] 使用的问题:

echo addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0") > project/plugins.sbt

去掉echo第一个参数开头和结尾的简单引号

【讨论】:

    【解决方案3】:

    我遇到了和你描述的一样的问题。我使用 Windows 10 并想知道它是否只发生在该系统上。

    如果我使用 sbteclipse 5.2.4 和其他一些小的修改,它就可以工作:

    cd hello-world
    
    echo 'addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")' > project/plugins.sbt
    

    接下来,我需要去project/plugins.sbt,把行首尾的'去掉。

    现在,不要输入sbt > eclipse!这只会将 sbt 控制台通过管道传输到新创建的文件中,并且您不会执行 eclipse。相反,在命令行中输入以下内容:

    sbt eclipse
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-22
      • 2014-11-06
      • 2015-03-29
      • 2018-10-05
      • 2015-10-18
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多