#maven #intellij-idea #jooq #jooq-codegen-maven
Вопрос:
У меня есть проект с несколькими модулями maven, и я использую IntelliJ для разработки (импорт POM). Структура проекта такова:
проект
- сущности-модуль (сущности JPA)
- модуль запросов (плагин jOOP codegen maven с использованием базы данных JPADatabase)
- app-модуль(логический модуль приложения)
Проблема, с которой я сталкиваюсь, заключается в том, что IntelliJ не запускает плагин jOOQ codegen (я использую логику сборки Intellij, а не делегирую задачи Maven).
То, что я делаю прямо сейчас, — это делаю сборку из Maven, чтобы заставить код jOOQ gen, а затем работать с IntelliJ. Но это подвержено ошибкам, и я хотел бы избежать этого.
Следуя соответствующим фрагментам моего ПОМ:
pom.xml/проект/сборка/Управление плагинами/плагины:
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>${jooq.version}</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions</artifactId>
<version>${jooq.version}</version>
</dependency>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions-hibernate</artifactId>
<version>${jooq.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>jooq-codegen</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<generator>
<database>
<name>org.jooq.meta.extensions.jpa.JPADatabase</name>
<properties>
</properties>
</database>
</generator>
</configuration>
</plugin>
pom.xml/проект/сборка/плагины:
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<dependencies>
<dependency>
<groupId>org.foo</groupId>
<artifactId>foo-lib</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<configuration>
<generator>
<database>
<properties>
<property>
<key>packages</key>
<value>
org.foo.data
</value>
</property>
</properties>
</database>
<target>
<packageName>org.foo.data</packageName>
<directory>target/generated-sources/jooq</directory>
</target>
</generator>
</configuration>
</plugin>
Комментарии:
1. Intellij не знает о jOOQ. Вы можете делегировать сборку Maven.
2. Это смутно напоминает мне о проблеме Maven, которую я видел. Сработает ли это, если вы переместитесь
<configuration>
в<execution>
?3. Помогает ли вызов этого действия ? Можете ли вы предоставить образец проекта, чтобы проверить это? Спасибо.
4. Лукас, твое предложение <конфигурация> в <конфигурация><выполнение> не имеет значения. Спасибо. Андрей, нажатие на действие, на которое вы указали, не создает классы DSL jOOQ. Спасибо. Ниже приведен простой проект, показывающий проблему: github.com/tucu00/jooq-codegen-mvn-intellij Заранее спасибо
5. Я предполагаю, что IntelliJ понадобится плагин для распознавания конфигурации плагина jOOQ codegen maven.