2012-03-19 7 views
0

Netbeans 7.1を使用して、Mavenで構築されたJSF 2.0 Webアプリケーションを作成しています。サーバーはGlassFish 3.1で、JPA 2.0プロバイダとしてのEclipseLinkです。Maven依存関係にEclipseLink modelgenパッケージを含める必要がありますか?

プロジェクトの「クリーン・ビルド」を実行すると、JPAメタ・モデル用に生成されたすべてのソースが消えて戻りません。だからNetbeansは未定義のシンボルの山を見ます。どこでも赤い点。

私はプロジェクトを実行すると、何とかしてメタモデルが生成され、最終的にMavenプロジェクトが使用するgenerated-sourcesディレクトリに戻ってきます。 Webアプリケーションが実行されます。しかし、アプリケーションを実行しないでメタモデルを生成する方法はありません。時にはそれはいくつかのパスが必要です!

私は、次のことを依存関係として含めると、問題が部分的に消滅することを発見しました。クリーン・アンド・ビルドはまだ出力にエラーを生成しますが、モデルはIDEに関する限り生成されます。

何が起こっているのか、おそらく私は何をすべきか説明できますか?

答えて

0

アプリケーションが起動すると(実行時に)正しくプロセッサがメタモデルを生成することがわかっている場合。だからあなたはあなたのWebアプリケーションにそれを含める必要があります。

以前のメタモデルクラスは存在しません。後

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

「クリーンと構築」あなたはメタモデルがビルド時に構築され得るず、クラスが実際に発生した/対象に含まれていることがわかります。私は次の依存関係を使用しています

3

-sources/annotationsフォルダにあります。これらはjarファイルに入れられます。つまり、これらは "提供された"ものとしてスコープできるので、ビルド時に使用されますが、全体的な分散パッケージには含まれていません。

関連する問題