我已经在我的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清洁安装时,它工作正常。
<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类(QClass),但从eclipse运行时,它不会生成它们。
此外,当我从eclipse运行我的应用程序时,它会出现以下错误:
Caused by: java.lang.ClassNotFoundException: xxx.QClass
eclipse maven插件有什么问题吗?我该怎么解决这个问题?
4条答案
按热度按时间uelo1irk1#
如果您只需要从JPA实体类生成Q类,另一种可能的解决方案是使用querydsl-apt的分类器,如下所示:
如果使用Jakarta持久性(Spring 6+):
在这种情况下,您根本不需要手动配置apt-maven-plugin构建版本。
编辑:如果要迁移到JavaEE 9,分类器应该是jakarta
9ceoxa922#
这是一个相当老版本的插件,可能这就是为什么它没有被覆盖的原因。请更新到这里显示的配置https://github.com/mysema/apt-maven-plugin
eaf3rand3#
这是一个你在eclipse中经常会看到的错误,基本上,Eclipse试图将一个插件匹配到一个m2e连接器上,如果它做不到,因为你没有安装一个合适的连接器,你就会得到这个错误。
解决这个问题相当简单:将鼠标悬停在错误上。您将看到3种可能的快速修复方法,如下所示:
它们具有以下效果:
如果您正在使用的插件没有m2e连接器,那么您可以忽略这个问题,因为它是Eclipse特有的。(例如通过命令行),当您配置Eclipse忽略插件时,Eclipse maven插件也会很好地构建您的项目。如果您想与您的团队共享配置,或者有不同的Eclipse安装,将配置添加到您的pom中。如果您不希望pom被IDE特定的设置所污染(像我一样),请使用eclipse首选项。
以下是有关此问题的一些详细信息:https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
ljsrvy3e4#
如果与m2e一起使用,请使用以下命令