我在 pom.xml 中添加了以下代码片段,但在 Eclipse 中执行部分出现错误:
Plugin execution not covered by lifecycle configuration: com.mysema.maven:maven-apt-plugin:1.0.3:process (execution: default, phase: generate-sources)
虽然当我从命令行运行 mvn clean install 时它工作正常。
<build>
<plugins>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>${project.basedir}/target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
<processors>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</processors>
<showWarnings>true</showWarnings>
</configuration>
</execution>
</executions>
</plugin>
从命令行运行后,它会生成查询 dsl 类(QClasses),但从 eclipse 中它不会生成它们。
另外,当我从 eclipse 运行我的应用程序时,它会出现以下错误:
Caused by: java.lang.ClassNotFoundException: xxx.QClass
eclipse maven 插件有问题吗?我该如何解决这个问题?
如果您只需要从 JPA 实体类生成 Q 类,另一种可能的解决方案是使用 querydsl-apt 的分类器,如下所示:
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jpa</classifier>
</dependency>
如果使用 Jakarta Persistence (Spring 6+):
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jakarta</classifier>
</dependency>
在这种情况下,您根本不需要手动 apt-maven-plugin 构建配置。
编辑:如果您要迁移到 Java EE 9,分类器应该是 jakarta
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)