Ответ 1
Если вы перейдете к свойствам/источникам проекта, обратите внимание на это: вам нужно сгенерировать источники в
${basedir}/target/generated-sources/FOOBAR
где FOOBAR
- имя вашего плагина.
У меня есть веб-приложение Maven, которое использует JPA 2.0 на задней панели. Поставщиком JPA является EclipseLink 2.3.2.
Когда я создаю проект (и он успешно запускает прогоны), он создает метамоду JPA в каталоге
${basedir}/target/generated-sources/annotations/
Однако среда IDE не видит классы, определенные там. Маленькие красные точки с восклицательным знаком повсюду. Тем не менее, я могу перейти к тем файлам в Проекты и открыть сгенерированные исходные файлы.
Случается ли это с кем-то еще и кто-нибудь знает, как его исправить?
UPDATE:
Как работа, я обнаружил, что могу выйти из NetBeans, удалить каталог кэша NetBeans, а затем перезагрузить. Это заставляет NetBeans восстанавливать кеш, а затем классы снова становятся видимыми. Должен ли я подавать ошибку в отслеживатель ошибок NetBeans? Я не могу придумать тестовый пример, чтобы это произошло, но это происходит довольно часто.
Если вы перейдете к свойствам/источникам проекта, обратите внимание на это: вам нужно сгенерировать источники в
${basedir}/target/generated-sources/FOOBAR
где FOOBAR
- имя вашего плагина.
После прочтения ответа @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>
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
Иногда у Netbeans есть проблемы, освежающие. Возможно, очистите и перестройте проект и перезапустите Netbeans?