我想指定一個與整個項目不同的文件編譯器選項。更具體一些,我需要啓用一些調試來弄清爲什麼宏在特定文件中失敗。如果我在全局範圍內更改選項,那麼整個項目將被重新編譯(併產生調試),這是我想避免的。如何爲文件分別指定scalacOptions
我該怎麼用sbt做到這一點?
我想指定一個與整個項目不同的文件編譯器選項。更具體一些,我需要啓用一些調試來弄清爲什麼宏在特定文件中失敗。如果我在全局範圍內更改選項,那麼整個項目將被重新編譯(併產生調試),這是我想避免的。如何爲文件分別指定scalacOptions
我該怎麼用sbt做到這一點?
無法給出僅適用於編譯單元某些文件的特殊編譯參數。
宏很難調試。現在可能的解決方案是:
println
宏的代碼,sbt clean compile
,你應該在控制檯中看到您的照片(這也適用於IDEA)。好運
@ som-snytt我刪除了「這就是爲什麼他們需要儘可能避免」,即使這很明顯,宏是一個應該避免的實驗性功能,甚至會被scala取代。元。 – Joan
使用SBT的漸進式編譯特性,你可以有以下解決方法:
touch <file with macro>.scala
,或者只對該文件進行一些其他修改。現在只有單個感興趣的文件(以及可能依賴它的文件)將被重新編譯,並且將會有更少的調試輸出。
以上意味着您的代碼編譯成功。如果不是,那麼當它首次編譯成功時(例如,通過刪除某些在您感興趣的文件中編譯失敗的代碼),您就需要將其帶入狀態,然後轉到上面的第3步。
爲什麼不使用'scalac print'並傳遞該特定文件? –
我也應該通過所有的依賴關係。 – ayvango
你能指定更多你看到的錯誤嗎? – Edmondo1984