【发布时间】:2019-12-18 18:35:20
【问题描述】:
我是 Scala 的新手,我发现 Scala IDE 在我的机器上对于搜索代码库和编辑代码等基本操作非常慢。我习惯了 Visual Studio Code,很高兴找到this metals extension。
我能够“导入构建”并解决问题,例如在我的项目中提高 scala 版本,但我不确定如何重现此步骤以设置运行配置并在 Scala IDE 中实际启动我们的应用程序。
我们有一个父文件夹,其中包含一堆项目和一个“consoleapp”项目,这是我们应用程序的主要入口点 - 它导入所有其他项目的逻辑/路由。
|____parent
| |____consoleapp
| |____project1
| |____project2
我在 consoleapp 文件夹和父文件夹中尝试了 sbt run 和 sbt runMain consoleapp,但它们不起作用。
我不确定我们的设置中还有哪些其他信息是相关的 - 很高兴根据需要提供更多信息。
更新以在下面添加更多详细信息:
consoleapp/build.sbt
name := "consoleapp"
version := "1.0"
scalaVersion := "2.12.10"
packMain := Map("consoleapp" -> "consoleapp")
libraryDependencies ++= Seq (...)
我运行的命令的输出 - sbt run 和 sbt runMain
从 ~/scala/parent 运行
> sbt run masterstate [0a8dab85] modified
[info] Loading settings for project global-plugins from metals.sbt,build.sbt ...
[info] Loading global plugins from /Users/pradhyo/.sbt/1.0/plugins
[info] Loading project definition from /Users/pradhyo/scala/parent/project
[info] Loading settings for project consoleapp from build.sbt ...
...
Loading settings for all other projects in parent folder
...
[info] Loading settings for project parent from build.sbt ...
[info] Resolving key references (22435 settings) ...
[info] Set current project to parent (in build file:/Users/pradhyo/scala/parent/)
[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:30)
[error] stack trace is suppressed; run last Compile / bgRun for the full output
[error] (Compile / bgRun) No main class detected.
[error] Total time: 1 s, completed 18-Dec-2019 1:41:25 PM
从 ~/scala/parent 运行
> sbt "runMain consoleapp.consoleapp" masterstate [0a8dab85] modified
[info] Loading settings for project global-plugins from metals.sbt,build.sbt ...
[info] Loading global plugins from /Users/pradhyo/.sbt/1.0/plugins
[info] Loading project definition from /Users/pradhyo/scala/parent/project
[info] Loading settings for project consoleapp from build.sbt ...
...
Loading settings for all other projects in parent folder
...
[info] Loading settings for project parent from build.sbt ...
[info] Resolving key references (22435 settings) ...
[info] Set current project to parent (in build file:/Users/pradhyo/scala/parent/)
[info] running consoleapp.consoleapp
[error] (run-main-0) java.lang.ClassNotFoundException: consoleapp.consoleapp
[error] java.lang.ClassNotFoundException: consoleapp.consoleapp
[error] at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
[error] stack trace is suppressed; run last Compile / bgRunMain for the full output
[error] Nonzero exit code: 1
[error] (Compile / runMain) Nonzero exit code: 1
[error] Total time: 0 s, completed 18-Dec-2019 1:46:21 PM
从 ~/scala/parent/consoleapp 运行
> sbt run masterstate [0a8dab85] modified
[info] Loading settings for project global-plugins from metals.sbt,build.sbt ...
[info] Loading global plugins from /Users/pradhyo/.sbt/1.0/plugins
[info] Loading project definition from /Users/pradhyo/scala/parent/consoleapp/project
[info] Loading settings for project consoleapp from build.sbt ...
[info] Set current project to consoleapp (in build file:/Users/pradhyo/scala/parent/consoleapp/)
[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:30)
[error] stack trace is suppressed; run last Compile / bgRun for the full output
[error] (Compile / bgRun) No main class detected.
[error] Total time: 0 s, completed 18-Dec-2019 1:49:26 PM
从 ~/scala/parent/consoleapp 运行
> sbt "runMain consoleapp" masterstate [0a8dab85] modified
[info] Loading settings for project global-plugins from metals.sbt,build.sbt ...
[info] Loading global plugins from /Users/pradhyo/.sbt/1.0/plugins
[info] Loading project definition from /Users/pradhyo/scala/parent/consoleapp/project
[info] Loading settings for project consoleapp from build.sbt ...
[info] Set current project to consoleapp (in build file:/Users/pradhyo/scala/parent/consoleapp/)
[info] running consoleapp
[error] (run-main-0) java.lang.ClassNotFoundException: consoleapp
[error] java.lang.ClassNotFoundException: consoleapp
[error] at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
[error] stack trace is suppressed; run last Compile / bgRunMain for the full output
[error] Nonzero exit code: 1
[error] (Compile / runMain) Nonzero exit code: 1
[error] Total time: 1 s, completed 18-Dec-2019 1:50:06 PM
【问题讨论】:
-
@LuisMiguelMejíaSuárez 我在帖子中编辑了更多信息
-
您的项目中似乎没有任何 scala 文件...?!至少没有找到
consoleapp对象,也没有任何其他适合作为主类的文件。 -
我建议你用你的代码创建一个小 git repo 并在这里发布。
-
是的,这与我遇到的问题完全相同。现有项目甚至使用 scala
2.11.7已有几年历史(当然仍在开发中)。我不会因为 scala 版本而工作,因为它是继承系统,所以我无法让它工作,所以我从来没有设法让它工作,即使我得到了使用 Metals 的每一个建议,但我对它感到非常失望它。 -
@amer 我打算在周末用一个小的 git repo 重新创建这个问题。你怎么确定这是因为 Scala 版本?你知道我运行的哪个命令是正确的吗?
标签: scala visual-studio-code sbt scala-ide scala-metals