2016-11-07 137 views
2

我試着用彈簧數據的JPA的一個項目,然而即時得到一些編譯錯誤,如使querydsl:如何在spring boot 1.4.1中配置querydsl?

The type com.querydsl.core.types.Predicate cannot be resolved. It is indirectly referenced from required .class files 

此外,當我運行mvn乾淨安裝我得到這個:

Caused by: java.lang.ClassNotFoundException: com.querydsl.core.annotations.QueryEntities 

我回顧了我的classpath中的jar,我可以看到querydsl-core 4.1.4,querydsl-apt 4.1.4和querydsl-jpa 4.1.4。但該項目仍然沒有爲我編譯,請問springboot 1.4.1和querydsl有問題嗎?

我有這個在我的pom.xml文件

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
</dependency> 
<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <scope>provided</scope> 
</dependency> 

和插件

<plugin> 
    <groupId>com.mysema.maven</groupId> 
    <artifactId>apt-maven-plugin</artifactId> 
    <version>1.1.3</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>target/generated-sources/java</outputDirectory> 
       <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

難道我做錯了什麼?

--- UPDATE ---

我從降級4.1.4 querydsl 4.1.3到至少正在編制項目。現在,我可以開始一些測試,我會發布我的發現。

我認爲這個問題仍然存在,因爲默認情況下,spring boot 1.4.1自帶querydsl 4.1.4版本。

+0

您是否在build> plugin或build> pluginmanagement> plugin上添加了上述插件。你需要把插件放在build>插件 –

回答

1

將依賴關係放入插件中。

<plugin> 
    <groupId>com.mysema.maven</groupId> 
    <artifactId>apt-maven-plugin</artifactId> 
    <version>1.1.3</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>target/generated-sources/java</outputDirectory> 
       <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
      </configuration> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>com.querydsl</groupId> 
      <artifactId>querydsl-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.querydsl</groupId> 
      <artifactId>querydsl-apt</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
</plugin> 
+0

同樣的錯誤,這對我來說很奇怪,因爲我看到核心有eclipse正在尋找的類,但由於某種原因沒有選擇類 –

+0

運行eclipse:eclipse來更新eclipse項目類路徑 –

+0

仍然無法正常工作。當我運行eclipse時:eclipse得到了「由:java.lang.ClassNotFoundException:com.querydsl.core.annotations.QueryEntities引起的」。 –

相關問題