Технический стек – #java, #maven, #liquibase, # докер
Я расскажу о том, что мы сделали, чтобы достичь следующих целей,
Создавайте jooq-классы из встроенной в память или специальной базы данных вместо подключения к средам предварительной жизни/live.
Как применить все миграции с помощью liquibase перед созданием jooq-классов.
Создавайте jooq-классы на основе драйвера Postgres. Jooq поддерживает генерацию классов, подключающихся к h2 (базе данных в памяти), но не Postgres. В основном мы используем Postgres, а h2 в основном не поддерживает многие функции Postgres.
Избегайте использования нескольких плагинов maven и 100 строк кода, вместо этого используйте один плагин maven.
Запустите “Тестовые контейнеры” на этапе предварительной компиляции maven. ( https://www.testcontainers.org/#about )
Примените миграции liquibase к тестовому контейнеру.
Создайте jooq-классы на основе предоставленной схемы.
jango89/jooqgen-ликвидная база-postgres
Плагин Maven с jooq, liquibase и postgres
Плагин Maven, который может быть интегрирован в любой образец проекта maven:
com.mytaxi jooqgen-liquibase-postgres bookingoptionsservice <-- schema name -->com.mytaxi.bookingoptionsservice <-- package to be created for generated classes -->${liquibase.changeLogFile} generate-sources jooqOverPostgresContainer
- Запускает контейнер postgres docker.
- Применяет изменения ликвидной базы к контейнеру.
- Генерирует классы JOOQ для исходного проекта, подключающегося к контейнеру postgres.
Если сгенерированные классы не компилируются,
- включите папку
/target/generated-sources/jooq/
в соответствующий плагин компилятора. - Если компиляция kotlin-maven-plugin завершилась неудачно, добавьте
- Если происходит ошибка
NoClassDefError
, это означает, что файлы классов отсутствуют. Добавьте следующий плагин
org.codehaus.mojo build-helper-maven-plugin generate-sources add-source ${project.build.directory}/generated-sources/jooq
Оригинал: “https://dev.to/rohithmenon89/generate-jooq-classes-using-docker-containers-4g62”