Closed
Description
We just upgraded to Spring Boot 3.2.4 and Spring Data Couchbase 5.2.4. We are getting the compilation error below. Adding that javax dependency is not an option since we migrated to jakarta. There also does not seem to be an obvious way to disable QueryDSL annotation processing, at least not with Maven. We are really not interested in using QueryDSL with Couchbase.
I temporarily got around the issue by doing this:
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jakarta</classifier>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-couchbase</artifactId>
<exclusions>
<exclusion>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</exclusion>
</exclusions>
</dependency>
Our previous version was 5.2.2, so something changed from 5.2.2 -> 5.2.4 that causes this.
The error is pretty easy to replicate with a minimal project (that does not include the legacy javax library).
Caused by: java.lang.NoClassDefFoundError: javax/inject/Inject
at com.querydsl.codegen.AbstractModule.createInstance (AbstractModule.java:125)
at com.querydsl.codegen.AbstractModule.get (AbstractModule.java:95)
at com.querydsl.apt.DefaultConfiguration.getTypeMappings (DefaultConfiguration.java:480)
at com.querydsl.apt.AbstractQuerydslProcessor.process (AbstractQuerydslProcessor.java:85)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor (JavacProcessingEnvironment.java:1023)