2014-12-02 42 views
0

如何獲得scalac以創建除了類文件之外還包括源代碼和/或源文件的JAR文件?Scalac編譯器將jar源文件

考慮example.scala其中,

object Main extends App { 
    println("Hello") 
} 

等產生example.jar

scalac -d example.jar example.scala 

隨着unzip example.jar我們注意到沒有來源都包括在內,

Archive: example.jar 
    inflating: META-INF/MANIFEST.MF  
    inflating: Main.class    
    inflating: Main$.class    
    inflating: Main$delayedInit$body.class 

正如評論/建議,一與SBT解決方案的價值。

+0

您是如何製作罐子的?如果你是「手工」做的,只需將源代碼壓縮即可。如果你用螞蟻或者maven或sbt來做這件事,把問題標記爲ant或者maven或者sbt。 – lmm 2014-12-02 13:34:11

+0

使用scalac -d name.jar name.scala – elm 2014-12-02 13:37:22

+0

在這種情況下,您可以使用'zip'工具:'zip example.jar example.scala'將該文件添加到jar中。如果你想要更結構化的東西,我認爲你必須使用構建工具。 – lmm 2014-12-02 17:18:12

回答

1

源文件通常不包含在常規的.jar文件中。相反,它們分佈在單獨的-source.jar中。在sbt中,您可以生成源代碼罐

> packageSrc