Многомодульный проект Gradle с общим уровнем сохраняемости базы данных

Настройка общего уровня сохраняемости (репозиториев, моделей предметной области и т. Д.) В многомодульном проекте Gradle. Это возможно?

Я настраиваю многомодульный проект Gradle в Котлине с тремя подпроектами; (1) REST API, (2) прослушиватель событий и (3) основная библиотека с общей функциональностью для двух других.

1 уже существует раньше, и в качестве первого шага я обернул его как подпроект в многомодульной сборке и начал перемещать общие элементы в 3 (2 будут построены позже).

В рамках этого мне также необходимо настроить уровень сохраняемости для проекта. Первоначально я настроил его в существующем модуле API, который отлично работает (все еще отсутствуют некоторые гигиенические факторы, такие как пролетный путь и т. Д., Но базовая настройка есть).

Однако при переносе изменений в основную библиотеку я получаю следующие сообщения об ошибках при использовании любого из репозиториев:

io.micronaut.context.exceptions.ConfigurationException: No backing RepositoryOperations configured for repository. Check your configuration and try again

Обзор установки (не уверен, насколько важна... рада предоставить более подробную информацию!):

  • котлин 1.3.41, jvm8
  • gradle 5.1.1 (с использованием многомодульного)
  • микронавт
  • micronaut-data + hibernate + jpa + jdbc + postgres

Зависимости в core/build.gradle (перенесено из api / build.gradle)

kapt "io.micronaut:micronaut-inject-java:1.2.2"
kapt 'io.micronaut.data:micronaut-data-processor:1.0.0.M1'
compile 'io.micronaut.data:micronaut-data-hibernate-jpa:1.0.0.M1'
compile "io.micronaut.configuration:micronaut-jdbc-hikari:1.2.0"
runtime 'com.h2database:h2:1.4.199'
runtime 'org.postgresql:postgresql:42.2.8'
runtime "io.micronaut.configuration:micronaut-jdbc-hikari:1.2.0"
// I have tried different combinations of compile/runtime/etc.

api / src / main / resources / application.yml конфигурация

datasources:
  default:
    url: jdbc:postgresql://host:port/dbname
    driverClassName: org.postgresql.Driver
    username: ***
    password: ***
    schema-generate: CREATE_DROP # for test
    dialect: org.hibernate.dialect.PostgreSQL95Dialect
jpa:
  default:
    entity-scan:
      packages:
        - 'app.core.domain'
        - 'app.core.repository'
    properties:
      hibernate:
        hbm2ddl:
          auto: update
        show_sql: true

В сочетании с вышесказанным я также использую несколько плагинов:

// plugin for making annotated kotlin data classes open - needed by hibernate
id 'org.jetbrains.kotlin.plugin.allopen' version '1.3.41'
// jpa plugin
id 'org.jetbrains.kotlin.plugin.jpa' version '1.3.41'
// give default empty constructors to kotlin data classes - needed by hibernate
id 'org.jetbrains.kotlin.plugin.noarg' version '1.3.41'

Я попытался, например, аннотировать свой класс приложения API ниже, когда я читал что-то в документации Micronaut о проблемах, если классы не скомпилированы с помощью Micronaut (что не является основной библиотекой)

@Introspected(
        packages=["app.common.repository", "app.common.domain"],
        includedAnnotations=[
            javax.persistence.Entity::class,
            javax.persistence.MappedSuperclass::class,
            javax.persistence.Embeddable::class,
            io.micronaut.data.annotation.Repository::class
        ]
)

Я пробовал несколько других вещей в течение дня и, честно говоря, не могу вспомнить их все прямо сейчас.

Ожидаемый результат - это в основном то, что у меня уже было, когда материал уровня персистентности был в модуле API, я просто хочу переместить его.

Любая помощь или идеи приветствуются!:) Заранее спасибо!

0 ответов

Другие вопросы по тегам