前言

最近為了解決Spark2.1的Bug,對Spark的源碼做了不少修改,需要對修改的代碼做編譯測試,如果編譯整個Spark項目快的話,也得半小時左右,所以基本上是改了哪個子項目就單獨對那個項目編譯打包。

Spark官方已經(jīng)給出了如何使用mvn單獨編譯子項目的方法:http://spark.apache.org/docs/latest/building-spark.html#building-submodules-individually

使用mvn單獨編譯子項目是節(jié)約了不少時間。但是頻繁的改動項目,每次用mvn編譯還是挺耗時間的。

之前看官方文檔提到,對于開發(fā)者,為了提高效率,推薦使用sbt編譯。于是,又查了下文檔資料:http://spark.apache.org/developer-tools.html

咦,看到:Running Build Targets For Individual Projects,內(nèi)容如下:

$ # sbt$ build/sbt package
$ # Maven$ build/mvn package -DskipTests -pl assembly

這不是坑么,雖然沒怎么用sbt編譯過Spark,但是sbt俺還是用過的。build/sbt package明明是編譯整個項目的好吧,這哪是編譯子項目啊。

翻遍官方所有跟編譯有關(guān)的資料,無果。

最后,研究了下Spark的sbt定義,也就是下project/SparkB

網(wǎng)友評論