2012-03-19 65 views
0

我正在使用Netbeans 7.1編寫一個Maven構建的JSF 2.0 Web應用程序。服務器是GlassFish 3.1,EclipseLink是JPA 2.0提供者。我需要在我的Maven依賴項中包含EclipseLink modelgen包嗎?

當我對項目進行「清理和構建」時,JPA元模型的所有生成源都會消失,不會再回來。所以Netbeans看到了一堆未定義的符號。到處都是紅點。

奇怪的是,如果我運行該項目,那麼元模型會以某種方式被生成,最終找到它回到Maven項目使用的generated-sources目錄。該Web應用程序運行。但是,如果不運行應用程序,則無法生成元模型。有時需要幾次傳球!

通過實驗發現,如果我將以下內容作爲依賴項包含在內,問題部分消失。 clean-and-build仍會在輸出中產生錯誤,但是就IDE而言,該模型會生成。

<dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> 
     <version>2.3.0</version> 
    </dependency> 

有人可以解釋發生了什麼,也許我應該做什麼?

回答

0

如果我理解正確,處理器在應用程序啓動時(運行時)生成元模型。所以你必須把它包含到你的web應用程序中。

元模型類以前不存在。

3

我使用以下依賴性:

<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> 
    <version>2.5.2</version> 
    <scope>provided</scope> 
</dependency> 

經過「清理並生成」你會看到的元模型並在構建時獲得建成和正在其實包含的類目標/生成-sources /註釋文件夾。然後這些被放入jar文件。因此,據說你可以將這些範圍限定爲「提供」,以便在構建時使用,但不包含在整個分佈式軟件包中。

相關問題