java - mysema 的 Maven apt-get-plugin

标签 java eclipse-plugin m2eclipse querydsl

我在 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

关于java - mysema 的 Maven apt-get-plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865691/

相关文章:

java - Eclipse 部署程序集未出现在属性中

eclipse - 删除 xtext eclipse 大纲 View 中的 <unnamed> 字段

java - WGET 下载在通过命令行执行时发生得更快,而在通过 Java 代码执行时发生得慢

Java happens-before 关系

java - 如何使用 Date Today = new Date(); 将日期时间从 java 设置为 sql

java - 方法重载示例

blackberry - 黑莓应用程序未从Eclipse中部署到模拟器中

java - 尽管存在冲突,Eclipse SVN 仍部分提交?

maven - 版本插件不更新子模块,只更新父模块

java - 遍历AST节点