如何构建 OpenJFX 的调试版本并将其发布到本地 Maven?

问题描述 投票:0回答:1

OpenJFX 的库存版本已从构建中删除了调试信息。很多时候,我发现自己在调试器中处于 FX 的深处,但它的用处不大,因为信息已被删除。

我一直在查看此页面https://wiki.openjdk.org/display/OpenJFX/Building+OpenJFX,并使用 JDK 21 在我的 MacOS 计算机上下载并成功构建了 OpenJFX 的主干。 “,我的意思是构建似乎完成且没有错误。我通过简单地运行“shgradelw”来做到这一点。

根据gradle.properties.template,调试构建是默认构建。我将模板复制到 gradle.properties,并将 CONF 设置更改为 Release,并比较了类文件。它们确实更小,这表明没有生成用于发布的调试数据,有助于确认默认构建具有调试信息。

网页上有一长串的任务列表,包括发布任务。特别是名为“publishToMavenLocal”的一个。

当我运行“sh gradlewtasks --all”时,没有显示任何发布任务。

我想将此构建推送到 Maven,这样我就可以更改我的 pom 文件以使用调试构建,以便在调试 FX 项目时获得更好的信息。

如何将 OpenJFX 的构建工件正确发布到本地 Maven 存储库?

附录:

“变量信息不可用,源代码编译时没有 -g 选项”。这就是我在编写 FX 代码时在 IDE 中得到的结果。因此,我无法查看方法中的局部变量,只能查看参数和类变量。 22.0.2 会发生这种情况。

OpenJFX 构建用于“发布”,他们使用 -g:source,lines 并用于“调试”,他们使用 -g:source,lines,vars。

我只是想将调试工件部署到本地 .m2 Maven 存储库。

maven javafx openjfx
1个回答
0
投票

NetBeans
支持源码级调试;在这种情况下,目标是从源代码构建OpenJFX中获取工件。一个关键因素是确保 NetBeans 能够访问相关的源工件。否则,NetBeans 可能会阻止或显示反编译列表;有了它,单步执行代码就相对轻松了。虽然这个答案不是完整的解决方案,但它可能提供前进的方向。

Maven 项目

一个 项目(如此处所示)非常方便,因为您可以右键单击所需的项目依赖项来下载可用的源代码。由于您是本地的,您可能需要求助于 Apache 安装第 3 方 JAR 的指南

或者,考虑使用构建的工件构建自定义 JDK+JavaFX 映像。生成的运行时映像可以作为独特的 NetBeans 平台添加到

Tools > Java Platforms

蚂蚁库项目

项目(如此处所示)提供了针对中的工件的优势,如此处所示。只需将相关文件或文件夹添加到相应的类路径、源或 Javadoc 选项卡即可。

典型的 SDK 下载包含一个名为

src.zip
的文件;它可能会出现在您的构建工件中。该文件是每个模块的 Javadoc 的组合。简单地将
src.zip
添加到“源”选项卡似乎是不够的。参考 NetBeans URI 和 URL,您可能需要直接编辑库的 xml 才能访问存档的内部结构:

<resource>jar:file:/…/lib/javafx-sdk-21.0.4/lib/javafx.base.jar!/</resource>
<resource>jar:file:/…/lib/javafx-sdk-21.0.4/lib/javafx.controls.jar!/</resource>
…

文件位置与平台相关; MacOS 显示:

~/Library/Application\ Support/NetBeans/22/\
    config/org-netbeans-api-project-libraries/Libraries/JFX.xml
© www.soinside.com 2019 - 2024. All rights reserved.