Scala.jsとJVMの両方の実行時にScalaバージョンを決定する方法は?

ヤンボー

この質問は、Scala自体からScalaバージョンを取得するにはどうすればよいですか?に似ています。、Scala.jsもサポートしたい場合を除きます。

私はutil.Propertiesアプローチを試みました残念ながら、Scala.jsでは利用できません。

https://scalafiddle.io/sf/dzNAhWB/0

ScalaFiddle.scala:-5: ERROR: There were linking errors
Referring to non-existent class java.util.jar.Attributes$Name
  called from scala.util.Properties$.()
  called from ScalaFiddle$.()
  exported to JavaScript with @JSExport
Referring to non-existent method java.util.Properties.load(java.io.InputStream)scala.Unit
  called from scala.util.PropertiesTrait.$$anonfun$scalaProps$1(java.util.Properties,java.io.InputStream)scala.Unit
  called from scala.util.Properties$.$$anonfun$scalaProps$1(java.util.Properties,java.io.InputStream)scala.Unit
  called from scala.util.PropertiesTrait.scalaProps()java.util.Properties
  called from scala.util.Properties$.scalaProps$lzycompute()java.util.Properties
  called from scala.util.Properties$.scalaProps()java.util.Properties
  called from scala.util.PropertiesTrait.scalaPropOrNone(java.lang.String)scala.Option
  called from scala.util.Properties$.scalaPropOrNone(java.lang.String)scala.Option
  called from scala.util.PropertiesTrait.$$init$()scala.Unit
  called from scala.util.Properties$.()
  called from ScalaFiddle$.()
  exported to JavaScript with @JSExport
involving instantiated classes:
  scala.util.Properties$
Referring to non-existent method java.lang.Class.getResourceAsStream(java.lang.String)java.io.InputStream
  called from scala.util.PropertiesTrait.scalaProps()java.util.Properties
  called from scala.util.Properties$.scalaProps$lzycompute()java.util.Properties
  called from scala.util.Properties$.scalaProps()java.util.Properties
  called from scala.util.PropertiesTrait.scalaPropOrNone(java.lang.String)scala.Option
  called from scala.util.Properties$.scalaPropOrNone(java.lang.String)scala.Option
  called from scala.util.PropertiesTrait.$$init$()scala.Unit
  called from scala.util.Properties$.()
  called from ScalaFiddle$.()
  exported to JavaScript with @JSExport
involving instantiated classes:
  scala.util.Properties$
Referring to non-existent method java.util.jar.Attributes$Name.(java.lang.String)
  called from scala.util.Properties$.()
  called from ScalaFiddle$.()
  exported to JavaScript with @JSExport

では、すべてのScalaバックエンドの実行時にScalaバージョンを決定する方法は?

sjrd

プラットフォームに依存しないソリューションは言うまでもなく、Scala.jsではそもそもそれを行う方法がないのではないかと思います。

できることは、ビルドツール(sbt?)に小さなタスクを記述して、情報をエンコードする小さなソースファイルを生成することです。

たとえば、ソースジェネレータに関するsbtドキュメントを言い換えます

sourceGenerators in Compile += Def.task {
  val file = (sourceManaged in Compile).value / "scalaversion" / "ScalaVersion.scala"
  val scalaV = scalaVersion.value
  IO.write(file,
      s"""
        object ScalaVersion {
          val Full = "$scalaV"
        }
      """)
  Seq(file)
}.taskValue

その後ScalaVersion.Full、コードから読み取ることができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Scala => with =

分類Dev

ZeppelinでSparkとScalaのバージョンを確認する方法は?

分類Dev

ZeppelinでSparkとScalaのバージョンを確認する方法は?

分類Dev

Spark-shellは異なるバージョンのScalaを使用します。自作を使用してscalaとapache-sparkの両方をインストールしました

分類Dev

Scalaで外部プロセスを実行し、終了コードと出力の両方を取得するにはどうすればよいですか?

分類Dev

sbtコンソール最新のScalaバージョンに更新する方法は?

分類Dev

Ubuntuでscalaのバージョンを再構成する方法は?

分類Dev

Scalaバージョン2.13でAnormの未解決の依存関係を修正する方法

分類Dev

Scala(JVM)内からJavaScriptコードを実行する方法は?

分類Dev

ArrayListとTupleのscalaのバージョンは何ですか?

分類Dev

アーティファクトIDに含まれるScalaとScala.jsのバージョン

分類Dev

Scala:外部コマンドを実行し、Processとstdout Stream [String]の両方を取得します

分類Dev

()のScalaと{}のScala

分類Dev

古いバージョンのscalaをインストールする方法

分類Dev

Scalaの最新バージョンを使用すると、java.lang.ClassNotFoundException:scala.Function1 $ classが発生します。

分類Dev

Scala RESTAPIサーバーでReact.jsを実行する方法

分類Dev

Scalaでのクロスバージョンの動作を明確にする

分類Dev

Scalaでのクロスバージョンの動作を明確にする

分類Dev

sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

分類Dev

sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

分類Dev

sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

分類Dev

sbt、scala、ライブラリのバージョンを処理する方法

分類Dev

同じSparkプロジェクトでScalaとPythonの両方を使用する方法

分類Dev

複数の戦争を使用して複数のscalaバージョンを解決する

分類Dev

Scalaで競合するメンバーの継承を解決する方法

分類Dev

実行時に名前から一般的な特性を解決するためのScalaリフレクション

分類Dev

両方がJVMのみで実行される `.class`ファイルにコンパイルされる場合、ScalaはJavaよりどのくらい高速ですか?

分類Dev

Scalaの実行時に「cat:/ release:No such file or directory」を取得する

分類Dev

Scalaの実行時にObjectからクラスを取得する

Related 関連記事

  1. 1

    Scala => with =

  2. 2

    ZeppelinでSparkとScalaのバージョンを確認する方法は?

  3. 3

    ZeppelinでSparkとScalaのバージョンを確認する方法は?

  4. 4

    Spark-shellは異なるバージョンのScalaを使用します。自作を使用してscalaとapache-sparkの両方をインストールしました

  5. 5

    Scalaで外部プロセスを実行し、終了コードと出力の両方を取得するにはどうすればよいですか?

  6. 6

    sbtコンソール最新のScalaバージョンに更新する方法は?

  7. 7

    Ubuntuでscalaのバージョンを再構成する方法は?

  8. 8

    Scalaバージョン2.13でAnormの未解決の依存関係を修正する方法

  9. 9

    Scala(JVM)内からJavaScriptコードを実行する方法は?

  10. 10

    ArrayListとTupleのscalaのバージョンは何ですか?

  11. 11

    アーティファクトIDに含まれるScalaとScala.jsのバージョン

  12. 12

    Scala:外部コマンドを実行し、Processとstdout Stream [String]の両方を取得します

  13. 13

    ()のScalaと{}のScala

  14. 14

    古いバージョンのscalaをインストールする方法

  15. 15

    Scalaの最新バージョンを使用すると、java.lang.ClassNotFoundException:scala.Function1 $ classが発生します。

  16. 16

    Scala RESTAPIサーバーでReact.jsを実行する方法

  17. 17

    Scalaでのクロスバージョンの動作を明確にする

  18. 18

    Scalaでのクロスバージョンの動作を明確にする

  19. 19

    sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

  20. 20

    sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

  21. 21

    sbtを使用してscalaプロジェクトをビルドするときのscalaのバージョンの関係は何ですか?

  22. 22

    sbt、scala、ライブラリのバージョンを処理する方法

  23. 23

    同じSparkプロジェクトでScalaとPythonの両方を使用する方法

  24. 24

    複数の戦争を使用して複数のscalaバージョンを解決する

  25. 25

    Scalaで競合するメンバーの継承を解決する方法

  26. 26

    実行時に名前から一般的な特性を解決するためのScalaリフレクション

  27. 27

    両方がJVMのみで実行される `.class`ファイルにコンパイルされる場合、ScalaはJavaよりどのくらい高速ですか?

  28. 28

    Scalaの実行時に「cat:/ release:No such file or directory」を取得する

  29. 29

    Scalaの実行時にObjectからクラスを取得する

ホットタグ

アーカイブ