如果我有一個小/中等大小的SBT斯卡拉(與Akka)項目,並希望看到來自scalac的脫糖輸出,我將如何做到這一點?SBT斯卡拉項目de-sugared
我發現幾個references用於顯示小函數或類文件,但示例沒有使用外部類(即導入)。我想看看我的ScalaTest中的一個函數是否正在脫糖,但是有太多的依賴關係,簡單的scala -print myFile.scala
不起作用。
有關如何做到這一點的想法將不勝感激。
如果我有一個小/中等大小的SBT斯卡拉(與Akka)項目,並希望看到來自scalac的脫糖輸出,我將如何做到這一點?SBT斯卡拉項目de-sugared
我發現幾個references用於顯示小函數或類文件,但示例沒有使用外部類(即導入)。我想看看我的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,compile-quick
:
https://github.com/retronym/scratch/blob/master/20111022/project/CompileQuickPlugin.scala https://github.com/retronym/scratch/blob/master/20111022/sbt.log
但是,如果這個工程與當前SBT版本我沒有檢查。
我的黑客是通常編譯它,然後使用jd-gui來反編譯它。有時會打起精神,但幫助我理解99%的糖。