在我們的項目中,我們對通過編譯生成的.class文件進行了增強後處理。這個增強步驟實際上會修改生成的.class文件,然後覆蓋它。如何防止SBT重新編譯修改後的.class文件?
enhance <<= enhance triggeredBy (compile in Compile)
問題是sbt有一個稱爲增量重新編譯的機制。它監視生成的.class文件。每次增強器都覆蓋生成的.class文件時,sbt會識別這些修改並在下一個編譯命令中重新編譯相關的源。
對我們來說,重新編譯是一項非常耗時的工作。我們想停止重新編譯修改過的.class文件。這可能意味着讓sbt只監視源變化,而不是輸出變化。
我做了一些搜索。但我發現這件事很少。現在我知道一個名爲Analysis的特性可能負責從源到輸出.class文件的映射。所以我向你們求助。 Ps:我們可以通過將增強的輸出放到另一個文件夾來解決這個問題,但這不是優選的。
用已編譯的類創建單獨的項目,並將其作爲依賴項(庫)添加到您的播放項目中。 – 2014-09-23 13:45:47
@AndrzejJozwik感謝您的評論。您建議的方式並不是首選,因爲它對我們的目標有很長的路要走。由於我們的項目是一個非常大的項目,增加的複雜性可能會導致更多的問題。我們希望能夠直接解決問題。 – Chenyu 2014-09-23 14:29:01