从 Ant 切换到 Maven 时 Netbeans 中的问题

Problems in Netbeans when switching from Ant to Maven

在使用适当的工具 (https://www.codenameone.com/blog/migrating-your-project-to-maven.html) 将一个复杂的 Codename One 项目从 Ant 传递到 Maven 之后,在 Netbeans 12.3 中我遇到了两个问题:

  1. 当日志中有崩溃的堆栈跟踪时,单击代码行(在日志中报告)不会打开相关的 Java 文件并自动滚动到有问题的行(使用 Ant 它有效)。

  2. Netbeans 向我报告不存在的错误,即使它编译正确:这些错误都与引用库的代码有关(以前,使用 Ant,这些错误不会被报告)。

感谢您的建议

好消息,我解决了这两个问题。

关于截图中的假错误,右键单击Codename One项目的“公共”模块,有一个我之前没有注意到的“解决项目问题”项。错误是:

Your project has dependencies that are not resolved locally. Code completion in the IDE will not include classes from these dependencies or their transitive dependencies (unless they are among the open projects). Please download the dependencies, or install them manually, if not available remotely.

The artifacts are:

xxx:mainclass-cn1-websockets:jar:common:1.0-SNAPSHOT
xxx:mainclass-Device:jar:common:1.0-SNAPSHOT
xxx:mainclass-NativeLogsReader:jar:common:1.0-SNAPSHOT
xxx:mainclass-SMSActivation:jar:common:1.0-SNAPSHOT
xxx:mainclass-GoogleMaps:jar:common:1.0-SNAPSHOT
xxx:mainclass-CameraKitCodenameOne:jar:common:1.0-SNAPSHOT
xxx:mainclass-VideoOptimizerCN1Lib:jar:common:1.0-SNAPSHOT

如您所见,所有的错误都与cn1libs有关。通过点击“解决”,Netbeans 自动解决了这个问题,虚假错误(如屏幕截图中的错误)消失了。

这也部分解决了第一个问题,与 Netbeans 没有打开与日志中报告的错误行相关的 java 文件这一事实有关。我指定“部分解决”是因为问题只有在按下“运行”之前小心解决,在应用程序主模块的“项目”视图中左键单击(否则“运行” " 将引用具有各种副作用的"通用"模块)。然而,最终,如果不使用“解决项目问题”,这个部分解决方案将不会奏效。我确信这一点,因为我 运行 对前后完全相同的错误进行了一些测试。

更新

common 包中删除 nbactions.xml 可防止在该包中使用“运行”,从而避免了所描述的问题。