2012-03-23 103 views
18

バックエンドにJPA 2.0を使用するMavenで構築されたWebアプリケーションがあります。 JPAプロバイダはEclipseLink 2.3.2です。NetBeans IDEで生成されたソースが表示されないのはなぜですか?

私は(と、それが正常に実行を展開)、それはディレクトリ

${basedir}/target/generated-sources/annotations/ 

でのJPAのメタモデルを構築するプロジェクトをビルドするときしかし、IDEが定義されたクラスが表示されません。感嘆符がついた小さな赤い点がどこにでもあります。それでも、私はProjectsウィンドウのファイルに移動し、生成されたソースファイルを開くことができます。

これは誰にも起こりますか?それを修正する方法を知っている人はいますか?

UPDATE:回避策私は、NetBeansのを終了NetBeansのキャッシュディレクトリを削除し、その後、再起動することができることを発見したとして

。これにより、NetBeansでキャッシュが再構築され、クラスが再び表示されます。 NetBeansバグトラッカーにバグを提出する必要がありますか?私はそれを実現させるためのテストケースを思いつくことはできませんが、それはかなり頻繁に行われます。

+0

eclipseでは、複数のソースフォルダを定義できます。追加してください。 –

+3

はいこれはバグです.Netbeansは自動的に更新されます。 – eskatos

+0

これは2015年にNetbeans 8.0.2でまだ[バグ](https://netbeans.org/bugzilla/show_bug.cgi?id=218658)です。誰もがEclipseまたはIntellijを使用する理由を知りました。 –

答えて

2

時々Netbeansが苦労してリフレッシュします。おそらく、プロジェクトをきれいにして再構築し、Netbeansを再起動しますか?

+1

私はこれを試しても同じことをやってみましたが、私もproyectのpomディレクトリに "mvn clean install -Dmaven.test.skip = true"を試みました。 –

4

、プロパティ/ソースを投影して行く場合は、このについての注意があります:あなたは

FOOBARがあなたのプラグインの名前です
${basedir}/target/generated-sources/FOOBAR 

下のソースを生成する必要があります。

enter image description here

+0

生成されたソースと「Example_」という名前のファイルはすべてNetbeansのファイルタブにしか表示されていませんが、まだ私のideによって検出されずにJavaファイルにインポートまたは使用されています私のプロイエクトタブで無視されます。 Plsヘルプ。 –

3

@jeqo答えを読んだ後、手動で名前を変更することで、あれば、私がテストした:

"${project.build.directory}/generated-sources/annotations" to ".../generated-sources/hibernate-jpamodelgen" 

Nebeans(私はUbuntuの16.04でV8.2を使用しています)に違いを生むだろう。

すべてが魅力的に機能しました。次のように私は、POMファイルを変更

:依存:

1) "hibernate.jpamodelgen org.hibernate" を除去します。

<plugin> 
    <groupId>>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.6.1</version> 
    <configuration> 
     <compilerArgument>-proc:none</compilerArgument>   
    </configuration> 
    </plugin> 
  • この2つのステップが休止状態-jpamodelgenはオートパイロットに 実行されていないことを確認することですだけでそれを追加することによって、次のように

    2)のmaven-コンパイラプラグインを設定しプロジェクトの依存関係 リスト。JPA Static MetaModel Generator doc.

3を参照してください)この設定は、次の行を除いて休止状態JPA静的メタモデルジェネレータドキュメントページから直接で設定

<plugin> 
    <groupId>org.bsc.maven</groupId> 
    <artifactId>maven-processor-plugin</artifactId> 
    <version>3.2.0</version> 
    <executions> 
     <execution> 
     <id>process</id> 
     <goals> 
      <goal>process</goal> 
     </goals> 
     <phase>generate-sources</phase> 
     <configuration> 
      <processors> 
      <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor> 
      </processors> 
      <defaultOutputDirectory>${project.build.directory}/generated-sources/hibernate-jpamodelgen/</defaultOutputDirectory> 
     </configuration> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-jpamodelgen</artifactId> 
     <version>5.2.9.Final</version> 
     </dependency> 
    </dependencies> 
    </plugin> 

と、次のプラグインを追加しました:

<defaultOutputDirectory>${project.build.directory}/generated-sources/hibernate-jpamodelgen/</defaultOutputDirectory> 

この行は、単にmavenプラグイン名の後ろに指定されたディレクトリにメタモデルを生成します。この時点から、生成されたクラスがsrcディレクトリのサブツリーにあるかのように、すべてのNetbeans参照が設計時に動作します。このことができます

希望、

J

0

あなたは、あなたが適切なポンポンでJAXWSプラグイン「アーティファクト」の<configuration>セクションに<sourceDestDir>ノードを追加してくださいJAXWSを使用している場合。例えば:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>dojaxws</goal> 
        </goals> 
        <configuration> 
         <sourceDestDir>${project.build.directory}/generated-sources/jaxws</sourceDestDir> 
         .... 
        </configuration> 
       </execution> 
      </executions> 
      <configuration> 
       <wsdlDirectory>src/main/resources/com/mystuff/ws</wsdlDirectory> 
       <bindingDirectory>src/jaxws/binding</bindingDirectory> 
       <target>2.0</target> 
      </configuration> 
     </plugin> 

としては、上述およびNetBeansによって示されるように、「プラグイン」の名前が付加生成 - ソースパスを使用しなければなりません。うまくいけば、上記の "プラグイン名"の意味と、どのようにしてjaxwsにnetbeansが必要な場所に生成されたソースを入れるのかを明確にすることができます。明らかに、「設定」セクションはプラグインごとに異なります...ノード<sourceDestDir>がjaxwsに必要ですが、他のプラグインは何か他のものを使用することがあります。