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

Cle*_*ode 14 java compiler-construction debugging netbeans 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.

Vis*_*rma 32

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

使用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> 
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • "根据我的理解,你希望在编译中进行调试 - 而不是在调试模式下进行调试." 究竟.我在这里寻找后来,OP希望为前者提供解决方案.Prunge的答案涵盖了这一点. (2认同)

Eli*_*iuX 5

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


ilc*_*ero 0

您需要在org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor类中设置断点,并且应该在服务器启动期间停止(您需要以调试模式启动)。这并不是真正的编译,而只是 JPA 从类注释加载其元数据。因为您的 JPA 提供程序的代码不是您可以轻松理解或修改的代码,所以我建议您不要尝试在网上搜索您的特定错误并查看其他人是否遇到过它(即可能是 Eclipse Link 上的错误),而不是调试,当您的实体未正确注释时,这些库通常会抛出无信息的异常,例如空指针。