Spring Boot 2 + Java 9 + Querydsl [英] Spring Boot 2 + Java 9 + Querydsl
问题描述
我已成功将我的应用程序(Spring Boot + Java + Maven)更新为Spring Boot2.现在,我正在尝试更新为Java 9.
I have successfully updated my application (Spring Boot + Java + Maven) to Spring Boot 2. Now I'm trying to update to Java 9.
根据NicolasFränkel的博客文章(将Spring Boot应用程序迁移到Java 9-兼容性)我完成了不使用模块信息文件就更新到Java 9的工作.但是,当我创建这样的文件时,apt-maven-plugin会卡在创建Q类型上.
According to Nicolas Fränkel's blog post (Migrating a Spring Boot application to Java 9 - Compatibility) I accomplished to update to Java 9 without using a module-info file. But when I create such a file, the apt-maven-plugin gets stucked on creating the Q-types.
有人使用Java 9 + Maven + Querydsl成功完成了吗?
Has anyone successfully completed using Java 9 + Maven + Querydsl?
我对apt-maven-plugin的Maven配置如下:
My Maven configuration for the apt-maven-plugin looks as follows:
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
当我运行 mvn generate-sources 时,该插件仅显示一堆错误消息,不生成任何类并报告成功:
When I run mvn generate-sources, the plugin only prints a bunch of error messages, generates no classes and reports success:
$ mvn generate-sources
...
[INFO] --- apt-maven-plugin:1.1.3:process (default) @ app ---
.../src/main/java/module-info.java:9: error: module not found: java.validation
requires java.validation;
^
.../src/main/java/module-info.java:13: error: module not found: hibernate.jpa
requires hibernate.jpa;
^
...
21 errors
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.484 s
[INFO] Finished at: 2018-04-01T13:11:25+02:00
[INFO] ------------------------------------------------------------------------
推荐答案
同时使用QueryDSL + Mapstruct和Lombok:
For using QueryDSL + Mapstruct and Lombok together:
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/annotations</outputDirectory>
<processors>
<processor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</processor>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
<processor>org.mapstruct.ap.MappingProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
</plugin>
这篇关于Spring Boot 2 + Java 9 + Querydsl的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!