当我用vscode打开querydsl JPA项目时,vscode有许多无法解决的错误



当我用vscode打开querydsl JPA项目时,vscode有许多无法解决的错误:

The import com.**.QRoutePayload cannot be resolved

当我用IDEA打开它时,它是好的。为什么我在vscode中得到这个错误,我该如何修复它?

QueryDSL生成类似q类的代码(例如在您的示例中"QRoutePayload")到您的maven目标文件夹中。IDEA会自动添加生成源代码的文件夹,但vscode不会。

因此,解决方案是将生成源代码的文件夹添加到类路径中。例如,对于maven项目,您可以使用: 中的build-helper-maven-plugin来完成它。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

你可以通过使用Ctrl+Shift+P>Java:配置类路径。但是,如果maven管理的项目列表是只读的,那么您必须使用上面描述的pom。

为了在VSCode中成功生成Q类.

apt-maven-pluginPOM中移除

POM中添加以下依赖项。

请确保在provided作用域的querydsl-apt依赖项中添加versionclassifier

<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jpa</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>

最新更新