В более поздних версиях Gradle compile
был заменен на api
и implementation
.
api
предоставляет зависимости внешним модулям, как compile
. Таким образом, если у вас есть модуль A
, зависит от модуля B
, который зависит от C
, если изменяется C
, то A
необходимо перекомпилировать. Команда Gradle признала, что во многих случаях это было не нужно, поэтому она ввела implementation
, поэтому, если C
изменяет только модули, которые зависят от него, придется перекомпилировать, что означает только модуль B
. Это сокращает время сборки и делает проект намного более аккуратным.
Короче говоря, если вы замените все compile
на api
, результат будет таким же, и это то, к чему относится предупреждение.
Однако, как правило, вы должны использовать implementation
, когда это возможно, чтобы избежать загрязнения проекта зависимостями.
Я бы сначала попытался заменить compile
на implementation
и построить проект.
Эта ссылка имеет гораздо лучшее объяснение и визуализацию различий.