2011-11-09 38 views
5

我有一個用於spring-data-jpa和QueryDsl的Eclipse Maven項目。Maven使用spring-data-jpa和querydsl構建問題

我似乎有一個maven-apt-plugin的問題,如果我在執行mvn clean之後進行mvn安裝,它會嘗試「處理」引用QueryDsl生成文件的文件,但這些生成的文件沒有還沒有建立,所以我得到多個「無法找到符號」的錯誤。

如果必須做另一個mvn安裝,一切就好了,因爲生成的文件現在存在。

這個maven-apt-plugin需要處理我的項目中的每個文件,還是我可以給它一個指定的目錄?

注:進出口使用JDK6,Eclipse的靛藍,M2E 1.0.100

我POM是...

<project> 
    .... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>com.mysema.maven</groupId> 
     <artifactId>maven-apt-plugin</artifactId> 
     <version>1.0.2</version> 
     <executions> 
      <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>target/generated-sources</outputDirectory> 
       <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    .... 
</project> 
+0

如果您使用maven而不是eclipse,您是否有完全相同的問題? – Ralph

+0

嗨拉爾夫,看看我下面的評論。謝謝。 – Alex

回答

4

亞歷克斯,嘗試定義構建輔助:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
      <id>add-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
       <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
        <source>target/generated-sources</source> 
        <source>src/main/java</source> 
       </sources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
1

你得到錯誤或只是警告?您可以添加true以減少錯誤記錄。

這種日誌記錄是APT的一部分,因爲在類型生成之前的第一次運行中,源代碼檢查會查看對不可用類型的引用。

+0

在Eclipse控制檯窗口中,在maven-apt-plugin:1.0.2:process階段,我得到一些紅色文本輸出(不記錄),指出找不到符號。這適用於任何引用QDSL生成類的類。 – Alex

+0

作爲mvn安裝的一部分運行的測試失敗,因爲Spring未能解決未解決的編譯器錯誤。如果我之後重新安裝mvn,那麼它完全可以正常工作。 – Alex

+0

從上面的Ralph註釋開始,如果我運行mvn clean,然後從命令行安裝mvn,我會從maven-apt-plugin看到與未找到的符號相同的輸出,但是我對測試失敗沒有任何問題。所以這個問題只在Eclipse – Alex