Подпроект build.gradle перезаписывается или не может генерировать файлыJAVA

Программисты JAVA общаются здесь
Anonymous
Подпроект build.gradle перезаписывается или не может генерировать файлы

Сообщение Anonymous »

Справочная информация
Я работаю над обновлением с Java 11 до Java 17, Gradle 6.8.x до 8.5 и с Spring Boot 2.x до 3.x.
Приложение имеет 3 файла build.gradle с основной версией и 2 подпроекта.
Один подпроект () настроен для использования с OpenAPI и генератором OpenAPI, другой предназначен для генерации тестов (), но использует ресурсы из подпроекта :api, генерируя тесты динамически с помощью OpenAPI Generator.
Изначально в проекте использовался OpenAPI 3.0.1, который у меня есть. перешел на 3.1.0. Это была находка, поскольку проверка стала более четкой в ​​отношении ошибок.
В проекте также использовался OpenAPI Generator 4.3.1, который я обновил до 7.8.0 (для поддержки Spring Boot). 3 и устранить некоторые критические ошибки).
В файлах build.gradle подпроектов :test и :api есть задача openApiGenerate. У них обоих общий файл spec.yaml, но он принадлежит подпроекту :api.
Ключевым отличием, которое я отметил, было то, что :api использует Spring вот так:

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

openApiGenerate {
generatorName = "spring"
inputSpec = "$swaggerSourceFile"
outputDir = "$swaggerOutputDir"
configFile = "$swaggerConfigFile"
configOptions = [
dateLibrary: "java8",
useJakarta: "true",
useSpringBoot3: "true"
]
}
А подпроект :test использует Java, настроенный следующим образом:

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

openApiGenerate {
generatorName = "java"
inputSpec = "$swaggerSourceFile"
outputDir = "$swaggerOutputDir"
configFile = "$swaggerConfigFile"
configOptions = [
dateLibrary: "java8",
useJakarta: "true",
useSpringBoot3: "true"
]
library = "rest-assured"
}
$swaggerSourceFile — это путь к spec.yaml подпроекта :api на основе относительного пути.
$swaggerOutFir — это просто каталог подпроекта, определенный с помощью $projectDir
Файл $swaggerConfig – это одни и те же 10 настроек внутри config.json. файл. Ключевые из них:
  • useBeanValidation: true
  • useTags: true
  • performBeanValidation: true
  • implicitHeaders: true
  • interfaceOnly: true
  • java8: false // изначально установлено верно
Проблема 01
При обновлении до Gradle 8.5 возник запрос явная или неявная зависимость, которая должна быть создана в build.gradle подпроекта :test в задаче openApiGenerate подпроекта :api.
Делаем это в соответствии с инструкциями в документации Gradle удовлетворяет ошибке, но затем перезаписывает :test build.gradle, нарушая проект. Однажды мне удалось решить эту проблему, но во время устранения неполадок она возникла снова, и на этот раз исходное исправление не работает. Будем очень признательны за любую полезную информацию о том, как это исправить.
Проблема 02
Это основная проблема. Преодолев вышеуказанную проблему, я столкнулся с проблемой, из-за которой OpenAPI Generate больше не генерирует два файла: «GsonObjectMapper.java» и «ApiClient.java». Я не могу найти никаких ссылок на эти пространства имен за пределами файлов, пытающихся их использовать, и все зависимости разрешаются должным образом. До обновлений он генерировался, а сейчас нет. Любая информация по этому поводу или о том, как правильно устранить неполадки, будет безмерно оценена. Информации о таком поведении почти не существует, и я все еще относительно новичок в OpenAPI.

Подробнее здесь: https://stackoverflow.com/questions/790 ... rate-files

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