Подтвердить что ты не робот

Почему среда NetBeans не видит созданные источники?

У меня есть веб-приложение Maven, которое использует JPA 2.0 на задней панели. Поставщиком JPA является EclipseLink 2.3.2.

Когда я создаю проект (и он успешно запускает прогоны), он создает метамоду JPA в каталоге

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

Однако среда IDE не видит классы, определенные там. Маленькие красные точки с восклицательным знаком повсюду. Тем не менее, я могу перейти к тем файлам в Проекты и открыть сгенерированные исходные файлы.

Случается ли это с кем-то еще и кто-нибудь знает, как его исправить?

UPDATE:

Как работа, я обнаружил, что могу выйти из NetBeans, удалить каталог кэша NetBeans, а затем перезагрузить. Это заставляет NetBeans восстанавливать кеш, а затем классы снова становятся видимыми. Должен ли я подавать ошибку в отслеживатель ошибок NetBeans? Я не могу придумать тестовый пример, чтобы это произошло, но это происходит довольно часто.

4b9b3361

Ответ 1

Если вы перейдете к свойствам/источникам проекта, обратите внимание на это: вам нужно сгенерировать источники в

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

где FOOBAR - имя вашего плагина.

введите описание изображения здесь

Ответ 2

После прочтения ответа @jeqo, я проверил, если вручную переименовать:

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

будет иметь значение для Nebeans (я использую v8.2 на ubuntu 16.04).

Все работало как шарм.

Затем я изменил файл pom следующим образом:

1) удалена зависимость "org.hibernate: hibernate.jpamodelgen".

2) настроил maven-compiler-plugin следующим образом:

   <plugin>
    <groupId>>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
    <configuration>
      <compilerArgument>-proc:none</compilerArgument>        
    </configuration>
  </plugin>
  • Эти два шага - это убедиться, что hibernate-jpamodelgen не запускаться на автопилоте, просто добавив его в зависимость от проекта список. См. JPA Static MetaModel Generator doc.

3) добавлен следующий плагин с конфигурацией

  <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>

Эта конфигурация находится непосредственно на странице документации Hibernate JPA Static Metamodel Generator, за исключением следующей строки:

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

Эта строка просто генерирует метамодель в каталоге, названном именем имени плагина maven. С этого момента я получил все ссылки Netbeans, работающие во время разработки, как если бы сгенерированные классы находились в поддереве src-каталога.

Надеюсь, что это поможет,

J

Ответ 3

Иногда у Netbeans есть проблемы, освежающие. Возможно, очистите и перестройте проект и перезапустите Netbeans?