Maven apt-get-plugin的肌瘤

Arr*_*rry 3 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)
Run Code Online (Sandbox Code Playgroud)

虽然当我从命令行运行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>
Run Code Online (Sandbox Code Playgroud)

从命令行运行后,它会生成查询dsl类(QClasses),但是从eclipse中不会生成它们。

另外,当我从eclipse运行我的应用程序时,它给出以下错误:

Caused by: java.lang.ClassNotFoundException: xxx.QClass
Run Code Online (Sandbox Code Playgroud)

Eclipse Maven插件有问题吗?我该如何解决?

lpa*_*zic 6

如果仅需要从JPA实体类生成Q类,则另一种可能的解决方案是对querydsl-apt使用分类器,例如:

<dependency>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-apt</artifactId>
    <version>${querydsl.version}</version>
    <classifier>jpa</classifier>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您完全不需要手动apt-maven-plugin构建配置。


Tim*_*per 2

这是该插件的一个相当旧的版本,可能这就是它没有被覆盖的原因。请更新此处显示的配置https://github.com/mysema/apt-maven-plugin