Как скомпилировать в режиме отладки? (netbeans, java, maven)
Я сталкиваюсь с ошибками аннотации/персистентности в проекте, а библиотека persistence выбрасывает
NullPointerException when trying to resolve the entities (org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.discoverMappedSuperclassesAndInheritanceParents(EntityAccessor.java:224)).
Как отлаживать ошибки, подобные этим, чтобы узнать больше о причине ошибки?
Установка точки останова в EntityAccessor
и компиляция для отладки не работает, сам компилятор, похоже, не работает в режиме отладки.
Я использую Netbeans/Java/Maven.
Ответы
Ответ 1
Из того, что я понимаю, вы хотите, чтобы отладка в compilation- не выполнялась в режиме отладки.
Используя mvn для компиляции, используйте режим отладки следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>
</plugin>
debuglevel может быть любым из трех значений, введенных в формате CSV
Чтобы подчеркнуть, debug и debuglevel являются важными узлами, включенными в Maven.
Надеюсь, это поможет.
Ссылка: maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html
Ответ 2
Вы можете отлаживать любую цель Maven в NetBeans, идущей на /Project Properties/Actions/
, выбрать цель, которую вы хотите отлаживать, в последней опции Установить свойства выберите Добавить, а затем выберите Debug Maven build.
Ответ 3
Вы запускаете Maven в режиме отладки?
Чтобы запустить Maven в режиме отладки, используйте команду mvndebug вместо mvn для создания вашего проекта, а затем присоедините его к нему с помощью среды IDE. Должны быть удалены точки останова отладки.
Я сделал это с Eclipse, в основном при попытке отладки собственных обработчиков аннотаций, но это также удобно для отладки плагинов Maven.
Я бы предположил, что отладка процессора JPA не будет тривиальной - вам может быть лучше просмотреть все сообщение об ошибке или отправить его в свой вопрос.
Ответ 4
Вам нужно иметь свойство jpda.listen=maven
.
В Netbeans 8+:
1. Выберите модуль, который вы хотите отлаживать при создании.
2. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, и выберите Properties
.
3. Выберите категорию Actions
.
4. Затем выберите Clean and build project
Действие.
5. В разделе Set Properties
выберите Add
> Debug Maven Build
.
6. Нажмите кнопку OK
, чтобы закрыть и сохранить настройки.
Теперь вы можете установить точки останова и отладить плагины и зависимости maven.
Ответ 5
Вам нужно будет установить точки останова в классе org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor
, и это должно прекратиться во время запуска вашего сервера (который вам нужно будет запустить в режиме отладки). Это не компиляция, а только JPA, загружающая метаданные из аннотаций классов. Поскольку ваш код провайдера JPA не то, что вы можете легко понять или изменить, я бы предположил, что вместо отладки вы попытаетесь найти свою конкретную ошибку в сети и посмотреть, не испытал ли ее кто-то другой (т.е. Может быть ошибкой на Eclipse Link), обычно для этих библиотек бросать неинформативные исключения, такие как Null Pointer, когда ваши объекты не аннотируются правильно.