过去几年里,Codename One 的项目设置一直藏在 GUI Builder 的 jar 包内,混在图形设计器的边角料里。它管着项目属性、账号、签名流程、构建监控、扩展安装——基本是“没地方放的功能全塞到这一个屏幕里”。这种大杂烩式的设计让每个操作都绑在 GUI Builder 的发布节奏上,你甚至没法单独升级设置工具本身。
PR #5359 终结了这种局面,把它拆出来,做成了一个独立的桌面应用。不寄人篱下,也不带那些跟“编辑项目属性”无关的模块。新工具聚焦一个职责:管好当前项目的所有配置,其他一概不碰。
![]()
启动方式很简单,在任何 Codename One Maven 工程下跑一条命令:
mvn cn1:settings
Maven 插件会解析 com.codenameone:codenameone-settings 构件,自动启动它,指向当前项目。你做的任何修改都会写回项目的 codenameone_settings.properties 和 Maven 配置。工具本身有独立的发布周期,不用再跟着 GUI Builder 的版本号跑。
打开后的 Basic 屏幕只保留跟源码项目直接相关的属性:显示名称、包名、版本号、主类、图标,以及和这些相绑定的构建选项。不再掺杂账号管理、证书向导或者构建监控之类的内容。这个界面干净到一眼就能看完。
更有价值的改动在 Build Hints(构建提示)部分。以前它像是一个纯文本文件的对话框外挂,键值对排在那里,没有说明,类型模糊,拼错一个前缀就得去翻文档。新的编辑器仍然保留直接键值控制,也就是你依然可以用手改属性文件。但它加了描述、已知值类型、过滤和专注的编辑流程。比如你想确认到底该写成 ios.themeMode 还是 and.themeMode,或者找某个平台专属的签名键名,不再需要切出去查资料,编辑器本身就成了一个可搜索的参考。
实际上,选择现在的 native 主题也就是生成了一段普通项目设置:
nativeTheme=modernios.themeMode=modernand.themeMode=modern
属性文件始终是唯一的真实来源,UI 只是个编辑器,不会变成另一套配置体系。
Extensions 界面同样做了克制升级。它能浏览实时目录,安装或卸载 Maven 依赖和老的 cn1lib 包,同时保留目录中可能缺掉的兼容性元数据。这点对老条目尤其重要,比如 AdMob 全屏广告,如果直接装了一个已经过时的库而没有任何警告,远比展示一些略微陈旧的元数据危险得多。所以工具会把这类警告钉在那里,不让你绕过。
实现细节上,这个设置工具已经内置了两种依赖模型的安装和卸载测试,还处理了明暗外观、键盘焦点、文本光标行为、原生菜单、应用图标,以及一个真正的桌面“关于”对话框。整个工具本身是用 Codename One 构建的,每次编辑它,就等于跑了一次 Java SE 桌面路径的实弹测试。
被请出去的模块让整个工具的边界变得很清晰。账号配置不应该躺在项目属性编辑器里,证书的跨平台规则足够复杂,值得单独出工具,构建监控自然应该放在构建旁边。把这些挪走后,Settings 的任务只剩下一个:编辑当前项目的所有配置,不多做一件事。这很 Codename One——从 Java 或 Kotlin 代码库一条路通到原生 iOS、Android、桌面和 Web 应用,工具链也该这样,一个工具只做一件事,但把它做彻底。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.