Код: Выделить всё
workspace/
├── repo-a/
│ ├── build.gradle
│ └── gradlew
├── repo-b/
│ ├── build.gradle
│ └── gradlew
└── repo-c/
│ ├── build.gradle
│ └── gradlew
- Цепочки инструментов Gradle: Gradle поддерживает указание основной версии Java, но я не могу напрямую указать версию исправления, например 21.0.9. Например:
Это означает, что Gradle может автоматически предоставлять такие версии, как 21.0.5 или 21.0.11, что может нарушить воспроизводимость.
Код: Выделить всё
java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) vendor.set(JvmVendorSpec.ADOPTIUM) } } - SDKMAN: не распространяет настройки .sdkmanrc в подкаталоги. Таким образом, размещение .sdkmanrc в корневом рабочем пространстве/ не работает для таких подкаталогов, как repo-a, repo-b и т. д.
- Копирование .sdkmanrc в каждый репозиторий: Это работает, но его утомительно поддерживать.
- Глобальная установка Java 21.0.9-tem через SDK по умолчанию: это работает, но жертвует изоляцией проекта.
- Рассмотрение специального плагина Gradle: кажется слишком сложным решением для такого простого варианта использования.
- Точная версия Java 21.0.9 (обнаружены ошибки в других версиях исправлений).
- Должен работать для команд ./gradlew в любом каталоге репозитория.
- В идеале — один источник правды для версии.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ple-gradle