Невозможно сгенерировать кассеты метамоделей JPA с помощью gradle и sts - PullRequest
1 голос
/ 14 мая 2019

Существует много различной информации о том, как настроить проект, чтобы создание метамодели JPA работало над сборкой, но ни одна из них не работает для меня.Я использую Java 11, Gradle 5.4.1 и STS (пробовал оба STS 3.9.8 и 4.2.1).Моя настройка gradle для аннотаций выглядит следующим образом:

annotationProcessor(
            "javax.xml.bind:jaxb-api",
            "org.projectlombok:lombok",
            "org.hibernate:hibernate-jpamodelgen",
)
compileJava {
    def relativePath = "out/production/classes/generated"
    sourceSets.main.java {
        srcDir(relativePath)
    }
    def generatedSourceDir = project.file(relativePath)
    options.annotationProcessorGeneratedSourcesDirectory = generatedSourceDir
}

Я также сделал щелчок правой кнопкой мыши на проекте> Свойства> Компилятор Java> Обработка аннотаций и выбрал:

  • Включить проектспециальные настройки
  • Включить обработку аннотаций
  • Включить обработку в редакторе
  • Сгенерированные директоры источников установлены на out/production/classes/generated

In> Factory Path I 'Вы выбрали:

  • Включить специфическую для проекта настройку
  • Добавлен внешний JAR hibernate-jpamodelgen-5.3.7.Final.jar
  • Добавлен внешний JAR javax.persistence-api-2.2.jar

МожетКто-нибудь видит, что я скучаю или делаю неправильно?Спасибо.

1 Ответ

1 голос
/ 15 мая 2019

Я запустил его с помощью плагина net.ltgt.apt-eclipse. Я подписался на пост в блоге: http://dplatz.de/blog/2018/gradle-apt.html

Я использую Eclipse 2019-03 и Gradle 5.4.1

Поскольку в блоге описан другой процессор аннотаций, я опишу шаги, предпринятые здесь

  1. Импортированный net.ltgt.apt-eclipse плагин. build.gradle выглядит следующим образом:
plugins {
    id 'org.springframework.boot' version '2.1.4.RELEASE'
    id 'java'
    id "net.ltgt.apt-eclipse" version "0.18"    
}

apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    compileOnly 'org.projectlombok:lombok:1.16.18'
    runtimeOnly 'com.h2database:h2'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    annotationProcessor(
            "javax.xml.bind:jaxb-api",
            "org.projectlombok:lombok",
            "org.hibernate:hibernate-jpamodelgen"
    )

}
  1. Выполнить следующую команду из командной строки:
gradle eclipseJdtApt eclipseFactorypath eclipseJdt
  1. Повторно импортированный проект Gradle. Убран проект. Щелкните правой кнопкой мыши проект и выберите Gradle / Refresh Gradle Project. После этого Project / Clean

  2. Проверено, что процессоры аннотации JPA присутствуют в Properties / Java Compiler / Annotation Processing / Factory Path Примечание: у меня есть следующие записи в порядке:

    • JAXB-апи-2.3.1.jar
    • Ломбок-1.18.6.jar
    • зимуют-jpamodelgen-5.3.9.Final.jar
    • javax.activation-апи-1.2.0.jar -jboss-каротаж 3.3.2.Final.jar
  3. Запустить сборку

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...