Как применить определенную версию исправления Java (21.0.9-tem) в нескольких проектах Gradle?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как применить определенную версию исправления Java (21.0.9-tem) в нескольких проектах Gradle?

Сообщение Anonymous »

У меня есть рабочая область с несколькими независимо клонированными репозиториями Gradle, и все они должны использовать одну и ту же версию исправления Java (21.0.9-tem) для воспроизводимых сборок:

Код: Выделить всё

workspace/
├── repo-a/
│   ├── build.gradle
│   └── gradlew
├── repo-b/
│   ├── build.gradle
│   └── gradlew
└── repo-c/
│   ├── build.gradle
│   └── gradlew
Проблема:
  • Цепочки инструментов Gradle: Gradle поддерживает указание основной версии Java, но я не могу напрямую указать версию исправления, например 21.0.9. Например:

    Код: Выделить всё

    java {
    toolchain {
    languageVersion.set(JavaLanguageVersion.of(21))
    vendor.set(JvmVendorSpec.ADOPTIUM)
    }
    }
    
    Это означает, что Gradle может автоматически предоставлять такие версии, как 21.0.5 или 21.0.11, что может нарушить воспроизводимость.
  • 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»