Как скомпилировать в режиме отладки? (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, когда ваши объекты не аннотируются правильно.