如何在调试模式下编译? (netbeans,java,maven)

我正面临项目中的注释/持久性错误,并且持久性库会抛出一个

NullPointerException when trying to resolve the entities (org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.discoverMappedSuperclassesAndInheritanceParents(EntityAccessor.java:224)).

如何调试这些错误以找到有关错误原因的更多信息?

EntityAccessor设置断点并编译以进行调试不起作用,编译器本身似乎没有在调试模式下运行。

我正在使用Netbeans / Java / Maven。

根据我的理解,您希望在编译中进行调试 – 而不是在调试模式下进行调试。

使用mvn编译,通过以下方式使用调试模式:

   org.apache.maven.plugins maven-compiler-plugin 2.5.1  1.6 1.6 true lines,vars,source   

debuglevel可以是以CSV格式输入的三个值中的任何一个。要突出显示, 调试调试级别是maven中包含的重要节点。

希望它在某种程度上有所帮助。

参考: maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html

您可以调试NetBeans中的任何Maven目标转到/Project Properties/Actions/ ,选择您要调试的目标,在最后一个选项Set Properties选择Add ,然后选择Debug Maven build

你在调试模式下运行Maven吗?

要在调试模式下运行Maven,请使用命令mvndebug而不是mvn来构建项目,然后使用IDE将其附加到它。 应该调试调试断点。

我已经使用Eclipse完成了这项工作,主要是在尝试调试我自己的注释处理器时,但它对于调试Maven插件也很方便。

我想,调试一个JPA处理器并不是一件容易的事情 – 你可能最好再次查看整个错误消息或将其发布在你的问题中。

您需要设置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插件和依赖项。

您需要在org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor类中设置断点,这应该在服务器启动期间停止(您需要在调试模式下启动) 。 这不是真正的编译,只是JPA从类注释加载其元数据。 因为您的JPA提供程序的代码不是您可以轻松理解或修改的代码,我建议您不要在调试中尝试在网上搜索您的特定错误,看看是否有其他人经历过它(即可能是Eclipse Link上的错误)当你的实体没有正确注释时,这些库通常会抛出像Null Pointer这样的无法提供的exception。