我們公司有一個巨大的應用程序,它的源代碼(實際上幾乎所有的源代碼)都被購買了,我們一直在努力使其適應我們的需求,修復等等。很久以前,某人決定編譯該項目是一件好事,那就是擁有原始公司的預編譯jar文件,並且只需在Override文件夾中編輯或添加我們需要的類,原始的源代碼。因此,當我們編譯時,我們只編譯我們編輯過的類,使用Classpath中的原始jar,然後將我們的新的或編輯過的類與原始jar加入來創建一個新的Jar。驗證Java類之間方法合約的一致性
這個問題似乎是人們正在改變方法契約,編輯接口和添加抽象方法到抽象類。當我們編譯時,我們不會重新編譯完整的源代碼,只有我們編譯器纔會檢查我們的覆蓋源代碼的契約一致性。 我已經開始注意到事情似乎正在破裂,因爲舊的類正試圖調用一個不再存在的方法,或者調用實現真正只是接口的部分版本的類的方法的類。
我不能簡單地將原始源代碼與我們的原始代碼一起加入,因爲在構建時會自動生成一些類和java文件,所以我可能意外修復了一些未被破壞的東西。 (我試過了,這就是爲什麼我知道)
有沒有一種方法來自動驗證各種編譯罐子類之間的契約一致性?解決這些問題後,我可以將兩個源目錄合併在一起,避免將來出現這些問題。
這是文章還是一個問題? –