web-dev-qa-db-fra.com

Comment exécuter un projet Scala) existant à l'aide de VS Code and Metals?

Je suis tout nouveau sur Scala et je trouve que Scala IDE est très lent sur ma machine pour des choses de base comme la recherche de la base de code et l'édition de code. Je suis habitué à Visual Studio Code et était très heureux de trouver cette extension de métaux .

J'ai pu "importer la version" et résoudre des problèmes tels que le bumping scala version dans mes projets, mais je ne sais pas comment reproduire cette étape pour configurer une configuration d'exécution et lancer réellement notre application dans Scala IDE.

enter image description hereenter image description here

Nous avons un dossier parent qui contient un tas de projets et un projet "consoleapp" qui est le principal point d'entrée de notre application - il importe la logique/les routes de tous les autres projets.

|____parent
| |____consoleapp
| |____project1
| |____project2 

J'ai essayé sbt run et sbt runMain consoleapp dans le dossier consoleapp et aussi dans le dossier parent mais cela n'a pas fonctionné.

Je ne sais pas quelles autres informations de notre configuration sont pertinentes - heureux de fournir plus d'informations si nécessaire.

Mise à jour pour ajouter plus de détails ci-dessous:

consoleapp/build.sbt

name := "consoleapp"

version := "1.0"

scalaVersion := "2.12.10"

packMain := Map("consoleapp" -> "consoleapp")

libraryDependencies ++=  Seq (...)

Sortie des commandes que j'ai exécutées - sbt run et sbt runMain

Exécution depuis ~/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

Exécution depuis ~/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

Exécution depuis ~/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

Exécution depuis ~/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
3
pradhyo

Metals prend en charge ces Scala versions 2.13.0, 2.13.1, 2.12.8, 2.12.9, 2.12.10, 2.12.7 et 2.11.12

C'est quelque chose que j'ai remarqué dans leur documentation ( doc ). Cela pourrait donc mettre en évidence votre problème et le mien que j'ai abordé dans les commentaires.

Votre scalaVersion := "2.12.3" n'est pas répertorié ici.

0
amer