что значит "смена compile на api/implementation"
Ну в gradle есть понятие configuration, они могут плагинами создаваться или руками. По дефолту плагин Scala (наследник Java-плагина) создаёт "compile" configuration который подтягивает все транзитивные зависимости в компайл cp, но с плагином java-library есть разделение на API и implementation конфигурации, api- транзитивные, implementation - только при компиляции себя, в компиляции дочерних проектов их не видно если явно не продублировать, только в рантайме