Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用sbt eclipse创建项目的eclipse项目文件?_Eclipse_Macos_Scala_Sbt - Fatal编程技术网

如何使用sbt eclipse创建项目的eclipse项目文件?

如何使用sbt eclipse创建项目的eclipse项目文件?,eclipse,macos,scala,sbt,Eclipse,Macos,Scala,Sbt,我随后在我的sbt项目中设置了插件: 添加了addSbtPlugin(“com.typesafe.sbteclipse”%”sbteclipse插件% “2.5.0”)到~/.sbt/plugins/plugins.sbt文件 cded到项目并运行sbt 在sbt shell中,键入eclipse 这就是我面临以下错误的地方: > eclipse [error] Not a valid command: eclipse (similar: help, alias) [error] Not

我随后在我的sbt项目中设置了插件:

  • 添加了
    addSbtPlugin(“com.typesafe.sbteclipse”%”sbteclipse插件%
    “2.5.0”)
    ~/.sbt/plugins/plugins.sbt
    文件
  • cd
    ed到项目并运行
    sbt
  • 在sbt shell中,键入
    eclipse
  • 这就是我面临以下错误的地方:

    > eclipse
    [error] Not a valid command: eclipse (similar: help, alias)
    [error] Not a valid project ID: eclipse (similar: sbteclipse)
    [error] Expected ':' (if selecting a configuration)
    [error] Not a valid key: eclipse (similar: deliver, licenses, clean)
    [error] eclipse
    [error]        ^
    
    我错过了什么

    提前谢谢你能给我的任何帮助

    $ /opt/sbt-0.13.5/bin/sbt
    [warn] The global sbt directory is now versioned and is located at /Users/first.last/.sbt/0.13.
    [warn]   You are seeing this warning because there is global configuration in /Users/first.last/.sbt but not in /Users/first.last/.sbt/0.13.
    [warn]   The global sbt directory may be changed via the sbt.global.base system property.
    [info] Loading project definition from /Users/first.last/git/myproject/project
    [info] Set current project to myproject (in build file:/Users/first.last/git/myproject/)
    > eclipse
    [error] Not a valid command: eclipse (similar: help, alias)
    [error] Not a valid project ID: eclipse
    [error] Expected ':' (if selecting a configuration)
    [error] Not a valid key: eclipse (similar: deliver, licenses, clean)
    [error] eclipse
    [error]        ^
    

    第2-4行中的警告告诉您将插件文件夹从
    ~/.sbt/plugins/plugins.sbt
    移动到
    ~/.sbt/0.13/plugins/plugins.sbt
    我正在使用sbt 0.13.5

    $ sbt --version
    sbt launcher version 0.13.5
    
    在空目录中执行
    sbt about
    以检查构建/sbt设置

    $ sbt about
    [info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
    [info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
    [info] Resolving org.fusesource.jansi#jansi;1.4 ...
    [info] Done updating.
    [info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
    [info] This is sbt 0.13.5
    [info] The current project is {file:/Users/jacek/sandbox/sbteclipse/}sbteclipse 0.1-SNAPSHOT
    [info] The current project is built against Scala 2.10.4
    [info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, net.virtualvoid.sbt.graph.Plugin, com.timushev.sbt.updates.UpdatesPlugin
    [info] sbt, sbt plugins, and build definitions are using Scala 2.10.4
    
    目录中没有文件(忽略目标,因为它是sbt在启动时自动创建的,可以随时删除)

    然后,我使用
    sbt
    运行sbt shell,以确保不存在
    eclipse
    命令

    $ sbt
    [info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
    [info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
    > eclipse
    [error] Not a valid command: eclipse (similar: help, alias)
    [error] Not a valid project ID: eclipse (similar: sbteclipse)
    [error] Expected ':' (if selecting a configuration)
    [error] Not a valid key: eclipse (similar: deliver, licenses, clean)
    [error] eclipse
    [error]        ^
    
    我可以复制你的问题。继续设置插件-我没有关闭sbt外壳

    仔细阅读文档后,我打开了
    ~/.sbt/0.13/plugins/plugins.sbt
    ,如下所示:

    $ cat ~/.sbt/0.13/plugins/plugins.sbt
    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
    
    使用文件中的插件,我在sbt shell中启动了
    reload
    ,以加载更改

    > reload
    [info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
    [info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
    [info] Resolving org.fusesource.jansi#jansi;1.4 ...
    [info] Done updating.
    [info] Set current project to sbteclipse (in build file:/Users/jacek/sandbox/sbteclipse/)
    > eclipse
    [info] About to create Eclipse project files for your project(s).
    [info] Updating {file:/Users/jacek/sandbox/sbteclipse/}sbteclipse...
    [info] Resolving org.fusesource.jansi#jansi;1.4 ...
    [info] Done updating.
    [info] Successfully created Eclipse project files for project(s):
    [info] sbteclipse
    
    正如您所见,插件已正确加载并生成文件。按照这些步骤操作,您应该安装了插件,没有问题。

    适用于sbt 0.13及更高版本

    将sbteclipse添加到插件定义文件中。您可以使用:

  • 位于~/.sbt/0.13/plugins/plugins.sbt的全局文件(适用于0.13及以上版本)

  • addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
    
  • 项目特定文件位于project_DIR/project/plugins.sbt

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

  • 我能够通过将sbteclipse插件从4.0降级到2.5.0来消除同样的错误

    解决方案

    只需使用(对于我的F23)更新到最新的
    sbt
    sbt-0.13.9-1.noarch
    ):

    然后从项目目录重试(第一次获取依赖项大约需要10分钟):


    原始问题

    这似乎是(至少)Linux上sbt-0.13.1的问题

    我在Linux F23上使用了默认软件包:

    • scala-2.10.4-8.fc23.noarch
    • java-1.8.0-openjdk-1.8.0.91-6.b14.fc23.x8664
    • sbt-0.13.1-8.fc23.noarch

    no排列(
    ~/.sbt/plugins/plugins.sbt
    ~/.sbt/0.13/plugins/plugins.sbt
    项目目录/PROJECT/plugins.sbt
    ,…)配置选项工作。

    我正在使用sbt 0.13.13,我使用以下步骤上传sbtecipse。 转到你的项目。 在


    然后从命令提示符转到项目文件夹,sbt没有sbt插件,尽管sbt有一个Eclipse插件

    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
    
    这是一个解决办法,但不是合适的解决方案

    这意味着eclipse不像对pom.xml或build.gradle那样理解build.sbt 因此,如果我们在build.sbt文件中更改eclipse项目中的依赖项,eclipse将无法理解它,并且不会更改项目依赖项中的依赖项

    解决方法如下(我使用了windows

    步骤1:从下载并安装sbt 对于windows来说,这是非常直截了当的

    第2步:创建一个文件夹,比如D:\sbt\edge 现在在这里创建build.sbt文件 您可以使用以下内容,并对其进行相应更改

    name := "edge"
    version := "0.1"
    scalaVersion := "2.11.8"
    val sparkVersion="2.4.0"
    libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % sparkVersion,
    "org.apache.spark" %% "spark-sql" % sparkVersion,
    "org.apache.spark" %% "spark-mllib" % sparkVersion % "runtime",
    "org.apache.spark" %% "spark-streaming" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-hive" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test,
    "org.apache.spark" %% "spark-graphx" % sparkVersion,
    "org.apache.spark" %% "spark-repl" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-yarn" % sparkVersion,
    "org.apache.spark" %% "spark-mllib-local" % sparkVersion,
    //"org.apache.spark" %% "spark-streaming-kafka" % "1.6.3",
    //"org.apache.spark" %% "spark-streaming-twitter" % "1.6.3",
    "ch.qos.logback" % "logback-classic" % "1.1.3"
    )
    
    现在创建这些嵌套文件夹src和main,如->D:\sbt\spark\src\main

    第3步:打开CMD/PowerShell转到D:\sbt\edge 运行“sbt包”

    第四步:进入你的主目录中的.sbt,在我的例子中进入正确版本的plugins文件夹C:\Users\xxxx.sbt\1.0\plugins 如果您已经有plugins.sbt文件,请添加以下行addSbtPlugin(“com.typesafe.sbteclipse“%”sbteclipse plugin“%”5.2.4”) 如果不是,则创建并添加线

    步骤5:返回CMD/PowerShell,运行sbt eclipse。它将为eclipse项目创建必要的文件。
    步骤6:打开eclipse工作区,并将此项目作为现有项目导入

    要在scala eclipse上创建sbt项目,您需要做几件事:

  • 创建新项目
  • 在项目中添加文件夹结构
  • 转到终端,通过cd命令转到您的项目
  • 键入sbt,然后开始下载,然后
  • 转到项目查看,是否创建了任何项目文件夹
  • 在该文件夹下创建plugin.sbt并添加sbt(addSbtPlugin(“com.typesafe.play“%”sbt plugin“%”2.6.13) addSbtPlugin(“com.typesafe.sbteclipse“%”sbteclipse插件“%”5.2.4)
  • 然后再次转到终端,键入compiledeneclipse
  • 它完成了,它显示了一个成功的信息

  • 我无法使方法#2正常工作。我不确定原因。[error]不是有效的命令:eclipse(类似:help,别名)[error]不是有效的项目ID:eclipse[error]预期“:”(如果选择配置)[error]不是有效的密钥:eclipse(类似:deliver,licenses,clean)[error]eclipse[error]^@Jacek Laskowski,我正在试图了解您在哪个解释器中运行命令。例如,第一个
    sbteclipse sbt--version
    -它是在shell中键入的(
    bash
    cmd
    ,等等)?还是在
    sbt
    中键入的?如果我在shell中键入
    sbteclipse
    ,它就不在我的路径中(事实上,我不认为它是我文件系统中的任何可执行文件)
    name := "edge"
    version := "0.1"
    scalaVersion := "2.11.8"
    val sparkVersion="2.4.0"
    libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % sparkVersion,
    "org.apache.spark" %% "spark-sql" % sparkVersion,
    "org.apache.spark" %% "spark-mllib" % sparkVersion % "runtime",
    "org.apache.spark" %% "spark-streaming" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-hive" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test,
    "org.apache.spark" %% "spark-graphx" % sparkVersion,
    "org.apache.spark" %% "spark-repl" % sparkVersion % "provided",
    "org.apache.spark" %% "spark-yarn" % sparkVersion,
    "org.apache.spark" %% "spark-mllib-local" % sparkVersion,
    //"org.apache.spark" %% "spark-streaming-kafka" % "1.6.3",
    //"org.apache.spark" %% "spark-streaming-twitter" % "1.6.3",
    "ch.qos.logback" % "logback-classic" % "1.1.3"
    )