Рубрики
Без рубрики

Создание классов jooq с использованием контейнеров docker

Технический стек – #java, #maven, #liquibase, #docker Почему? Я расскажу о том, что мы сделали с каждым из них… С тегами java, docker, liquibase, jooq.

Технический стек – #java, #maven, #liquibase, # докер

Я расскажу о том, что мы сделали, чтобы достичь следующих целей,

  1. Создавайте jooq-классы из встроенной в память или специальной базы данных вместо подключения к средам предварительной жизни/live.

  2. Как применить все миграции с помощью liquibase перед созданием jooq-классов.

  3. Создавайте jooq-классы на основе драйвера Postgres. Jooq поддерживает генерацию классов, подключающихся к h2 (базе данных в памяти), но не Postgres. В основном мы используем Postgres, а h2 в основном не поддерживает многие функции Postgres.

  4. Избегайте использования нескольких плагинов maven и 100 строк кода, вместо этого используйте один плагин maven.

  1. Запустите “Тестовые контейнеры” на этапе предварительной компиляции maven. ( https://www.testcontainers.org/#about )

  2. Примените миграции liquibase к тестовому контейнеру.

  3. Создайте 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
            
        
    
       
  1. Запускает контейнер postgres docker.
  2. Применяет изменения ликвидной базы к контейнеру.
  3. Генерирует классы JOOQ для исходного проекта, подключающегося к контейнеру postgres.

Если сгенерированные классы не компилируются,

  1. включите папку /target/generated-sources/jooq/ в соответствующий плагин компилятора.
  2. Если компиляция kotlin-maven-plugin завершилась неудачно, добавьте
  3. Если происходит ошибка 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”