У меня есть проект Micronaut, настроенный на использование GORM и Groovy (1).Этот проект содержит множество классов доменов, которые работают отлично, сохраняя данные в базе данных MySQL, как и ожидалось.
Теперь я хочу сделать эти классы доменов общими для другого проекта Micronaut (2).
Я попытался создать файл JAR, содержащий только пакет домена, и включить его в проект от 2 до build.gradle
.Классы скомпилированы и сделаны доступными в коде, и я могу вызывать методы GORM, такие как findBy
, createCriteria
и т. Д. Также полезно упомянуть, что все классы домена проекта 2 снабжены @Entity
. * 1009.*
Но когда я запускаю проект (используя IntelliJ) и нажимаю часть этого кода, я получаю:
Either class [com.project2.domain.Foo] is not a
domain class or GORM has not been initialized correctly or has already
been shutdown. Ensure GORM is loaded and configured correctly before
calling any methods on a GORM entity.
Я знаю, что GORM хорошо настроен и инициализирован, потому что я создал «локальный» доменкласс внутри проекта 2 и все работало нормально.
Перед тем, как задавать этот вопрос, я увидел этот вопрос, и, возможно, он может принести некоторое вдохновение: Импорт классов домена из автономного модуля GORM в Grails
РЕДАКТИРОВАТЬ 1: Текущие build.gradle
зависимости:
dependencies {
compile "io.micronaut.configuration:micronaut-kafka"
compile "io.micronaut.configuration:micronaut-hibernate-validator"
compile("io.micronaut.configuration:micronaut-hibernate-gorm") {
exclude group: 'org.grails', module: 'grails-datastore-gorm-hibernate5'
}
compile "org.grails:grails-datastore-gorm-hibernate5:6.1.9.RELEASE"
compile "io.micronaut:micronaut-http-client"
compile "io.micronaut:micronaut-http-server-netty"
compile "io.micronaut:micronaut-runtime-groovy"
compile "io.micronaut:micronaut-validation"
compileOnly "io.micronaut:micronaut-inject-groovy"
runtime "ch.qos.logback:logback-classic:1.2.3"
runtime "org.apache.tomcat:tomcat-jdbc"
runtime "mysql:mysql-connector-java:6.0.6"
testCompile "io.micronaut:micronaut-inject-groovy"
testCompile("org.spockframework:spock-core") {
exclude group: "org.codehaus.groovy", module: "groovy-all"
}
compile files('src/main/resources/libs/my-domain-lib.jar')
}
Заранее спасибо!