3

(比較的複雑な) SBT プロジェクトをローカル バージョンの Scala に対してビルドすると、次のエラーが発生します。

scalac error: bad option: '-Ydelambdafy:method'

これは、scalacまたはビルドファイルのバグである可能性があります。scalacただし、直接呼び出している間、このエラーを再現できません。

$ scalac -Ydelambdafy:method test.scala

これは期待どおりに実行されます。SBT がscalac発行する正確なコマンドを表示する方法はありますか? (正確なフラグを from からscalacOptionsto に渡してscalacもエラーにはならないことに注意してください)。

scalacOptionsは:

List(
  -deprecation,
  -unchecked,
  -feature,
  -encoding, utf8,
  -Ydelambdafy:method,
  -Xplugin:<...>/scala-js-test/compiler/target/scala-2.11.0-RC1/scalajs-compiler_2.11.0-RC1-0.4.1-SNAPSHOT.jar)`
)

問題のリポジトリは、 Scala.js マスターscalajs-libraryのサブプロジェクトであり、現在のScala マスターのビルドは.scalaHome

このビルド用にプロジェクトを構成するには、次を発行します。

set every List(scalaHome := Some(file("<scalaHome>")), scalaVersion := "2.11.0-RC1")

ルート プロジェクトで。

4

2 に答える 2

4

さて、これが問題です: sbt は実際には "scalac" を呼び出しません。コンパイラを直接呼び出し、適切なクラスを作成して呼び出します。

ただし、SBT 0.13+ を使用している場合は、直接実行した場合に実行されるものの概算を取得できますが、次のようにします。

export compile

このexportコマンドは、他のいくつかのタスクでも機能しますが、決してすべてのタスクでは機能しません。

于 2014-03-15T02:21:56.960 に答える
3

あなたが必要とするdebugcompile

[sbt-0-13-2]> help debug
debug

    Sets the global logging level to debug.
    This will be used as the default level for logging from commands, settings, and tasks.
    Any explicit `logLevel` configuration in a project overrides this setting.

--debug

    Sets the global logging level as described above, but does so before any other commands are executed on startup, including project loading.
    This is useful as a startup option:
        * it takes effect before any logging occurs
        * if no other commands are passed, interactive mode is still entered

[sbt-0-13-2]> debug
[debug] > shell
[sbt-0-13-2]> compile
[debug] > compile
[debug] Evaluating tasks: compile:compile
[debug] Running task... Cancelable: false, check cycles: false
...
[debug] Running cached compiler 3d61bf70, interfacing (CompilerInterface) with Scala compiler version 2.10.4-RC1
[debug] Calling Scala compiler with arguments  (CompilerInterface):
[debug]     -bootclasspath
[debug]     /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/classes:/Users/jacek/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.4-RC1.jar
[debug]     -classpath
[debug]     /Users/jacek/sandbox/so/sbt-0.13.2/target/scala-2.10/classes
[debug] Scala compilation took 77.142708 s
于 2014-03-14T21:03:49.973 に答える