SBT Scala脱糖项目

SBT Scala脱糖项目,scala,sbt,akka,Scala,Sbt,Akka,如果我有一个小型/中型SBT Scala(带有Akka)项目,并且希望看到scalac的脱糖输出,我将如何做到这一点 我发现了一些用于显示小函数或类文件的示例,但这些示例不使用外部类(即导入)。我想看看ScalaTest中的一个函数是去糖化的,但是有太多的依赖项,一个简单的scala-print myFile.scala无法工作 对于如何做到这一点,我们将不胜感激。使用SBT 0.13,您可以导出命令行,从命令行运行scala编译器,并在类路径上具有所有正确的依赖项: > compile

如果我有一个小型/中型SBT Scala(带有Akka)项目,并且希望看到scalac的脱糖输出,我将如何做到这一点

我发现了一些用于显示小函数或类文件的示例,但这些示例不使用外部类(即导入)。我想看看ScalaTest中的一个函数是去糖化的,但是有太多的依赖项,一个简单的
scala-print myFile.scala
无法工作


对于如何做到这一点,我们将不胜感激。

使用SBT 0.13,您可以导出命令行,从命令行运行scala编译器,并在类路径上具有所有正确的依赖项:

> compile
[info] Compiling 2 Scala sources to /Users/jason/code/scratch3/target/scala-2.10/classes...
[success] Total time: 1 s, completed Oct 31, 2013 7:28:50 PM
> export compile
scalac -bootclasspath /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jsfd.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/ui.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/laf.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/sunrsasign.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jsse.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jce.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/charsets.jar:/Users/jason/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.3.jar -classpath /Users/jason/code/scratch3/target/scala-2.10/classes:/Users/jason/.ivy2/cache/org.scalacheck/scalacheck_2.10/jars/scalacheck_2.10-1.10.1.jar:/Users/jason/.ivy2/cache/org.scala-tools.testing/test-interface/jars/test-interface-0.5.jar:/Users/jason/.ivy2/cache/org.scala-lang/scala-actors/jars/scala-actors-2.10.1.jar /Users/jason/code/scratch3/src/main/scala/Exercise.scala /Users/jason/code/scratch3/src/main/scala/Test.scala
您可以将其删除到感兴趣的文件中,然后添加
-print
或类似内容

有一次,我将其自动化,这样您就可以在SBT中使用一个新命令,
compilequick


但是我还没有检查这是否适用于当前的SBT版本。

对于SBT 0.13,您可以从命令行导出命令行以运行scala编译器,并在类路径上具有所有正确的依赖项:

> compile
[info] Compiling 2 Scala sources to /Users/jason/code/scratch3/target/scala-2.10/classes...
[success] Total time: 1 s, completed Oct 31, 2013 7:28:50 PM
> export compile
scalac -bootclasspath /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jsfd.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/ui.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/laf.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/sunrsasign.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jsse.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/jce.jar:/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Classes/charsets.jar:/Users/jason/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.3.jar -classpath /Users/jason/code/scratch3/target/scala-2.10/classes:/Users/jason/.ivy2/cache/org.scalacheck/scalacheck_2.10/jars/scalacheck_2.10-1.10.1.jar:/Users/jason/.ivy2/cache/org.scala-tools.testing/test-interface/jars/test-interface-0.5.jar:/Users/jason/.ivy2/cache/org.scala-lang/scala-actors/jars/scala-actors-2.10.1.jar /Users/jason/code/scratch3/src/main/scala/Exercise.scala /Users/jason/code/scratch3/src/main/scala/Test.scala
您可以将其删除到感兴趣的文件中,然后添加
-print
或类似内容

有一次,我将其自动化,这样您就可以在SBT中使用一个新命令,
compilequick


但我还没有检查这是否适用于当前的SBT版本。

我的方法是编译它,然后使用jd gui进行反编译。有时会搞砸,但可以帮助我理解99%的糖。

我的技巧是通常编译它,然后使用JDGUI反编译它。有时会搞砸,但能帮助我理解99%的糖