簡而言之,我們對 ABI 更改非常敏感,我們希望防止團隊中的人使用實驗性功能,因為這可能會在運行時導致問題。有沒有辦法通過 gradle 配置和/或自定義 gradle 插件來檢測何時使用此類功能并引發編譯器警告,最好使用自定義錯誤訊息?
uj5u.com熱心網友回復:
當使用實驗性功能時,Kotlin 編譯器(以及可傳遞的 Gradle)會默認警告您(甚至顯示錯誤)。
要更改此行為,開發人員必須通過@OptIn注釋或-opt-in編譯器引數選擇加入。如果您試圖避免意外使用實驗性功能,那么這應該就足夠了(如果我們認為選擇加入實驗性功能并非偶然)。
如果你想防止使用@OptIn它自己,這是一個不同的故事。從技術上講,目前@OptIn本身仍處于實驗階段,因此無論如何都會警告使用它,除非有人添加編譯器引數以選擇加入@OptIn實驗注釋:) 所以目前只有不修改編譯器引數的文化就足夠了,但是一旦@OptIn穩定下來,這當然會改變。
我不知道已經有插件這樣做了,但是您應該能夠使用Kotlin 符號處理撰寫一個插件來檢查這些注釋(不過我自己從未嘗試過)。
作為關于 ABI 兼容性的旁注,還有binary-compatibility-validator,但那是針對您自己的代碼,所以我認為它與問題無關。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378854.html
