web-dev-qa-db-ja.com

VS CodeとMetalsを使用して既存のScalaプロジェクトを実行する方法は?

私はScalaを初めて使用しましたが、- Scala IDE は、コードベースの検索やコードの編集などの基本的なことを行うと、マシン上で非常に遅くなります。ビジュアルに慣れていますスタジオコードと非常に満足して この金属拡張 を見つけました。

「ビルドをインポート」して、プロジェクト内のバージョンscalaバージョンを増やすなどの問題を修正できましたが、実行構成をセットアップして実際にアプリを起動するためにこの手順を再現する方法がわかりませんScala IDE。

enter image description hereenter image description here

たくさんのプロジェクトを含む親フォルダーと、アプリのメインエントリポイントである「consoleapp」プロジェクトがあります。他のすべてのプロジェクトのロジック/ルートをインポートします。

|____parent
| |____consoleapp
| |____project1
| |____project2 

私は試した sbt runおよびsbt runMain consoleapp 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
3
pradhyo

Scala Metals VSCode Readme の指示に従って、問題のEclipseスクリーンショットにこれと同様の起動構成を使用します。

.vscode/launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "scala",
            "name": "Debug consoleapp",
            "request": "launch",
            "mainClass": "consoleapp",
            "buildTarget": "consoleapp",
            "args": [],
            "jvmOptions": ["-J-Dconfig.file=/path/to/config/file"]
        }
    ]
}

pureconfig の構成ファイルを正しく渡すのに問題がありました。これが Githubの問題 と正しいjvmOptions行です。

1
pradhyo

MetalsはこれらをサポートしますScalaバージョン2.13.0、2.13.1、2.12.8、2.12.9、2.12.10、2.12.7および2.11.12

これは私が彼らのドキュメンテーション( doc )から気づいたものです。したがって、私がコメントで取り上げたあなたと私の問題を特定することができます。

きみの scalaVersion := "2.12.3"はここにリストされていません。

0
amer