如何使用sbt eclipse创建项目的eclipse项目文件?
我随后在我的sbt项目中设置了插件:如何使用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
addSbtPlugin(“com.typesafe.sbteclipse”%”sbteclipse插件%
“2.5.0”)
到~/.sbt/plugins/plugins.sbt
文件cd
ed到项目并运行sbt
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添加到插件定义文件中。您可以使用:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
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项目,您需要做几件事:
我无法使方法#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"
)