Gradle依賴之‘五種依賴配置’
今天查了下關於gradle中的依賴引用的情況:
原文:https://zhuanlan.zhihu.com/p/110215979
當前Gradle中共有 5 種依賴關係 ;外加2種測試用的依賴
01. Implementation
將指定的依賴新增到編譯路徑,並將該依賴打包到輸出檔案中,如apk;
但是這個依賴在編譯時不能暴露給其他模組,例如依賴此模組的其他模組。這種方式指定的依賴在編譯時只能在當前模組中訪問。
02. api
使用api配置的依賴會將對應的依賴新增到編譯路徑,並將依賴打包輸出,但是這個依賴是可以傳遞的,
比如模組A依賴模組B,B依賴庫C,模組B在編譯時能夠訪問到庫C,但是與implemetation不同的是,在模組A中庫C也是可以訪問的。
03. compileOnly
compileOnly修飾的依賴會新增到編譯路徑中,但是不會打包到apk中,因此只能在編譯時訪問,且compileOnly修飾的依賴不會傳遞。
04. runtimeOnly
這個與compileOnly相反,它修飾的依賴不會新增到編譯路徑中,但是被打包到apk中,執行時使用。
05. annotationProcessor
用於註解處理器的依賴配置
測試用依賴
testImplementation 和androidTestImplementation
-------------------------------------------------------------------------------------------------------------
舉例:
LomBok: 這個庫是用於在編譯時快速生成Getter和Setter等內容的,所以只使用在編譯階段,同時配置上註釋依賴處理