首页 > 解决方案 > 从 Ant 切换到 Maven 时 Netbeans 中的问题

问题描述

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

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

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

感谢您的建议

Netbeans 中的错误

标签: netbeanscodenameone

解决方案


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

关于截图中的虚假错误,右键单击 Codename One 项目的“common”模块,有一个我之前没有注意到的“Resolve Project Problems”项。错误是:

您的项目具有未在本地解决的依赖项。IDE 中的代码完成将不包括来自这些依赖项或其传递依赖项的类(除非它们在开放项目中)。如果远程不可用,请下载依赖项或手动安装它们。

文物是:

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 文件有关。我指定了“部分解决”,因为只有在按“运行”之前,在应用程序主模块的“项目”视图中左键单击才能解决问题(否则“运行”将指“通用”模块,具有各种副作用)。然而,最终,如果不使用“解决项目问题”,这个部分解决方案就不会奏效。我很确定这一点,因为我在之前和之后对完全相同的错误进行了一些测试。

更新

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


推荐阅读