Gradle + Scala Plugin + Zinc 1.3.5 пропускает Protobuf 3.7 в путь к классам компилятора

При отладке ошибок компиляции сгенерированного кода Protobuf после обновления проекта Scala до Gradle 6 и Zinc 1.3.5 я обнаружил, что путь к классам компилятора содержит две версии файла protobuf - ту, которая мне нужна (3.9.x) и 3.7. Последнее зависит от цинка.

Как правильно запустить сборку Zinc Scala в Gradle без утечки собственных зависимостей в путь к классам?

1 ответ

Решение

Эта проблема была решена с помощью sbt / zinc PR 799, который был объединен и включен в выпуск Zinc 1.4.0.

С этим MR они начали закрашивать зависимость protobuf (см. Этот коммит ).

К сожалению, в настоящее время невозможно использовать эту версию Zinc с Gradle, поскольку проблема Gradle № 15491 так и не была решена (обратите внимание, что в заголовке проблемы упоминается Zinc 1.4.3, но применяется ко всем версиям Zinc после серии 1.3.x).

Не похоже, что есть какие-либо планы по решению #15491, но похоже, что проблема будет решена как побочный эффект PR 18001, который активно разрабатывается с намерением добавить поддержку Scala 3 в Gradle (а также включает в себя очистку различные давние проблемы, связанные с путями к классам).

Другие вопросы по тегам