У меня есть проект Android со следующей структурой:
-- Calendar
------app (app module)
----------build.gradle (module level)
------build.gradle (project level)
------Commons(A common project which i reuse across various projects)
----------common (common module in Commons project)
-------------build.gradle (for only common module level)
----------build.gradle(for Commons Project)
Теперь проблема в том, что если я скомпилирую Commons, разверну его в bintray и затем использую его как implementation 'com.amitkma.Commons:common:1.0.0'
в модуле приложения, все зависимости (которые реализованы в общем build.gradle) также доступны для использования в модуле приложения , Но если я использую это как следующее
implementation project(:Commons:common)
, доступны только зависимости, предоставленные с помощью api
.
Я хочу знать, в чем разница между api
и implementation
относительно модуля, скомпилированного или используемого напрямую, как указано выше?