ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DBeaver 如何从源码构建 DBeaver CE 完整产品

DBeaver 如何从源码构建 DBeaver CE 完整产品 DBeaver 如何从源码构建 DBeaver CE 完整产品【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaverDBeaver CE 是基于 Eclipse RCP 和 OSGi 插件架构的 Java 桌面数据库工具源码仓库中的每个插件都是一个eclipse-plugin包单独构建一个 bundle 通常无法成功。如果你想从源码产出可以分发的 DBeaver CE 完整产品而不是单个插件需要按仓库文档指定的聚合入口和 Maven Profile 执行完整构建。本文覆盖构建前置准备、完整产品构建命令、产物说明和测试验证方式。前置条件按 AGENTS.md 的说明构建前需要满足以下条件Java 21目标平台要求JavaSE-21代码语言为 Java 21且不能使用 preview 特性。Maven Eclipse Tycho构建系统为 Apache Maven Eclipse Tycho每个插件打包为eclipse-plugin测试插件为eclipse-test-plugin。依赖仓库必须克隆到同一父目录DBeaver 各仓库之间存在依赖仓库根目录的 project.deps 声明了本仓库依赖dbeaver-common和datadam-api两个仓库。所有 dbeaver 相关仓库必须克隆在同一个目录文档称之为DBEAVER_DEV_HOME即 dbeaver 仓库的父目录下依赖仓库缺失时自行将其克隆到该父目录即可。OSGi 依赖来自 P2 仓库所有 OSGi 依赖都来自 Eclipse P2 仓库不是 Maven Central包括标准 Eclipse P2 仓库和 DBeaver 自定义 P2 仓库。自定义 P2 仓库的源仓库是dbeaver-deps-ce负责把经典 Maven 依赖转换成 P2 bundles。根目录的 osgi-app.properties 中声明了构建使用的 P2 仓库地址如https://repo.dbeaver.net/p2/ce/latest/因此构建过程需要能访问这些网络仓库。开发主分支为devel从该分支获取源码进行构建。构建入口聚合 POM 与产品 Profile完整产品构建的入口是 product/aggregate/pom.xml它把三块内容放进同一个 Maven 反应堆构建modules module../../../dbeaver-common/module module../../../datadam-api/apis/module module../../module /modules前两个模块指向DBEAVER_DEV_HOME下的依赖仓库第三个就是 dbeaver 仓库本身。这就是为什么依赖仓库必须放在同一父目录。产品层面由 product/pom.xml 中的 Maven Profile 决定构建哪个产品Profile构建的模块说明product-dbeaver-ceproduct/communityDBeaver CE 桌面完整产品product-dbeaver-eclipse-ceproduct/repositoriesEclipse 插件的 P2 仓库product-dbeaver-ce-msstoreproduct/community-msstoreMS Store 版本产品需要构建其他产品时使用不同的 Profile 组合完整 Profile 列表见 product/pom.xml。执行完整产品构建在 dbeaver 仓库根目录执行命令原样来自 AGENTS.mdmvn package -f product/aggregate/pom.xml -T1C -Pproduct-dbeaver-ce,product-dbeaver-eclipse-ce-f product/aggregate/pom.xml指定聚合入口同时把dbeaver-common、datadam-api和 dbeaver 仓库纳入构建。-T1CMaven 的并发构建参数按 CPU 核数分配构建线程。-Pproduct-dbeaver-ce,product-dbeaver-eclipse-ce同时启用两个 Profile一个产出 CE 桌面产品一个构建 P2 仓库。文档明确提示在单个 bundle 目录下直接执行mvn package通常失败因为 OSGi 要求构建中包含所有 bundle或者它们已经安装在本地.m2中。因此不要试图跳过聚合入口单独构建某个插件。可选分支如果需要构建 MS Store 版本产品把 Profile 换成product-dbeaver-ce-msstore它构建 product/community-msstore 模块。构建产物product/community/pom.xml 的 packaging 为eclipse-repository通过tycho-p2-director-plugin物化产品配置要点产品 IDorg.jkiss.dbeaver.core.product产品归档名dbeaver-ce-${dbeaver-version}${dbeaver-version}是构建定义的 Maven 属性由构建自动解析无需手工替换归档根目录rootFolders配置Linux / Windows / Solaris 为dbeavermacOS 为DBeaver.app构建完成后在构建输出中查找名为dbeaver-ce-${dbeaver-version}的产品归档。按 README.md 的说明这类归档解压后可以在命令行运行其中的dbeaver启动器来启动应用DBeaver 运行需要 Java预构建发行版自带 JRE。测试验证按 AGENTS.md对整个仓库运行测试的命令是mvn verify -f product/aggregate/pom.xml -T1C -Pproduct-dbeaver-ce,product-dbeaver-eclipse-ce该命令会运行桌面版 dbeaver ce 和 dbeaver eclipse 插件的测试。测试由 Maven Tycho 作为标准构建的一部分执行没有单独的 test-only Maven 命令测试在mvn install或mvn verify时随构建执行。另外单个 bundle 内直接跑测试通常也会失败原因同样是 OSGi 容器要求所有 bundle 参与构建或已安装在.m2。已知限制Java 版本锁定在 21目标平台为JavaSE-21不要依赖 preview 特性。bundle 间依赖声明在META-INF/MANIFEST.MF的Require-Bundle头中而不是pom.xml里排查依赖问题时应看 manifest。构建依赖 Eclipse P2 与 DBeaver 自定义 P2 仓库的网络可达性离线环境无法完成完整构建。主开发分支是develrelease_VERSION分支用于各版本发布不要直接在其上提交。完成构建与测试后产物与测试结果的对照就是这条路径的验证点package产出dbeaver-ce-${dbeaver-version}产品归档verify跑通 CE 桌面与 Eclipse 插件的测试。需要继续扩展例如新增数据库驱动插件时可参考 AGENTS-New-Database-Driver.md 中的步骤新插件加入plugins/pom.xml的模块列表后再执行上述聚合构建。【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表