gradle compile mysql_Gradle配置implementation、api与compile的区别
自Gradle?3.4開始,compile被廢棄,取而代之的是implementation和api兩個配置項。
掌握這三者的區(qū)別實際上就是要清楚什么情況使用implementation替換compile,什么情況下使用api替換compile。
implementation替換compile
使用implementation配置依賴,對Gradle來說:編譯時:不允許外部模塊調用此依賴包,除非外部模塊自己聲明此依賴
運行時:此依賴包只允許在運行時使用反射機制調用。
也就是說模塊使用implementation屏蔽了外部模塊直接調用它聲明的依賴。
這樣做有幾個好處:(翻譯自Gradle?文檔)依賴關系不會泄漏到消費者的編譯類路徑中,所以永遠不會意外地依賴于傳遞依賴項
由于減少的類路徑大小編譯更快
當實現依賴關系發(fā)生變化時,重新編譯會更少:消費者不需要重新編譯
cleaner發(fā)布:當與新的maven-publish插件結合使用時,Java庫會生成POM文件,這些文件可以精確地區(qū)分編譯庫所需的內容和運行時使用庫所需的內容(換句話說,不要混合編譯library本身所需的東西,以及編譯library所需的東西)。
api替換compile
編譯時與implementation相反,它允許外部模塊不管在編譯時還是運行時都可以調用api聲明的依賴。和原來的compile很類似。
使用api聲明依賴,如果依賴發(fā)生變化,所有訪問到此依賴的模塊都需要重新編譯。因此它會增加模塊的編譯時間。
總結
大部分情況下都應該使用implementation替換compile,只有在一些庫模塊才考慮使用api替換compile。
總結
以上是生活随笔為你收集整理的gradle compile mysql_Gradle配置implementation、api与compile的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: postgres 把一个表的值转成另一个
- 下一篇: 通达信公式大全_通达信MACD金叉的选股