我正在嘗試將我的 springboot 版本從 2.3.4 升級到 2.6.1。我使用帶有 jpa 和 apt-maven-plugin 的查詢 dsl。我的問題是當我運行 maven compile 時,我不能再生成 QClasses。我注意到我不能再使用舊版本的 querydsl(以前的 4.4.0 和 apt-maven-plugin 1.1.3)。現在,當我嘗試使用 4.4.0 時出現錯誤:
不可決議的匯入 POM:com.querydsl:querydsl-bom:pom:4.4.0 is not found in https://repo.maven.apache.org/maven2
然后當我切換到 5.0.0 版本時,我還有一個錯誤:
[資訊] --- apt-maven-plugin:1.1.3:process (default) @ gof-referentiel-backend --- [警告] 工件 org.apache.commons:commons-io:jar:1.3.2 有已遷移至 commons-io:commons-io:jar:1.3.2: https://issues.sonatype.org/browse/MVNCENTRAL-244 /home/ezek/Documents/projects/gof-referentiel-backend/src/main/java/fr/ubordeaux/gof/referentiel/common/persistence/dao/impl/ContactDAOImpl.java:12:錯誤:找不到符號匯入fr .ubordeaux.gof.referentiel.common.persistence.entity.QContactEntity; ^ 符號:類 QContactEntity 位置:包 fr.ubordeaux.gof.referentiel.common.persistence.entity /home/ezek/Documents/projects/gof-referentiel-backend/src/main/java/fr/ubordeaux/gof/referentiel/ common/persistence/dao/impl/ContactDAOImpl.java:29: 錯誤:找不到符號私有靜態最終 QContactEntity qContactEntity = QContactEntity.contactEntity;
對于使用物體的所有類,我都會收到此錯誤。什么也沒有產生。
這是我的 pom.xml 的相關值:
> <dependency> > <groupId>com.querydsl</groupId> > <artifactId>querydsl-apt</artifactId> > <version>${querydsl.version}</version> > </dependency> > <dependency> > <groupId>com.querydsl</groupId> > <artifactId>querydsl-jpa</artifactId> > <version>${querydsl.version}</version> > </dependency> > > <plugin> > <groupId>com.mysema.maven</groupId> > <artifactId>apt-maven-plugin</artifactId> > <version>1.1.3</version> > <executions> > <execution> > <phase>generate-sources</phase> > <goals> > <goal>process</goal> > </goals> > <configuration> > <outputDirectory>target/generated-sources/java</outputDirectory> > > <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> > </configuration> > </execution> > </executions> ></plugin>
我也使用 mapstruct 和 lombok 如果它可能相關(但我不認為),因為 apt-maven-plugin 在它們之前運行。
uj5u.com熱心網友回復:
看來您仍然(可能是傳遞性的)依賴于某些 Querydsl 4.0.0 依賴項。您需要洗掉那些(我無法指出哪些,因為您沒有在代碼段中包含完整的 POM)。
我還建議完全擺脫插件,而是使用依賴項分類器:
<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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/390157.html
下一篇:DTO是否應包含列舉
