
本文详解 tycho 构建 eclipse rcp 项目时因 org.sonarlint.eclipse.ui 依赖未解析而失败的问题,核心在于正确配置 target platform(目标平台),通过在 .target 文件中添加 sonarlint 官方 p2 仓库实现依赖可解析。
本文详解 tycho 构建 eclipse rcp 项目时因 org.sonarlint.eclipse.ui 依赖未解析而失败的问题,核心在于正确配置 target platform(目标平台),通过在 .target 文件中添加 sonarlint 官方 p2 仓库实现依赖可解析。
Tycho 构建失败的根本原因在于:它不从 Maven 中央仓库或
从错误日志可知,你的插件 com.sisnet.ide.plugin 声明了对 org.sonarlint.eclipse.ui(≥7.10.0)的 Require-Bundle 或 Import-Package 依赖,但当前 Target Platform 中未提供该 IU(Installable Unit),因此解析失败。
✅ 正确解决方案是:在你的 .target 文件(如 com.sisnet.ide.target/com.sisnet.ide.target.target)中,显式添加 SonarLint 的官方 p2 仓库:
<location includeallplatforms="false" includeconfigurephase="true" includemode="planner" includesource="true" type="InstallableUnit"><unit id="org.sonarlint.eclipse.feature.feature.group" version="0.0.0"></unit><repository location="https://eclipse-uc.sonarlint.org"></repository></location>
? 注意事项:
- version="0.0.0" 表示接受该 feature 的任意可用版本(Tycho 会自动匹配满足 ≥7.10.0 的最新兼容版);
- includeSource="true" 确保源码附件也被纳入,便于调试;
- 请确保该
节点位于 .target 文件的 根元素内,且位置合理(通常置于 Eclipse 官方仓库之后、自定义仓库之前); - 修改后需在 Eclipse 中右键 .target 文件 → “Set as Active Target Platform”,或执行 mvn clean verify -Dtycho.debug.target 验证仓库是否被 Tycho 正确加载;
- 若使用 Tycho 2.7+,建议同步检查 target-platform-configuration 插件是否启用 pomDependencies=consider(非必需,但可辅助诊断依赖来源)。
? 补充建议:
为提升构建稳定性和可重现性,推荐将 SonarLint 的具体版本号(如 7.11.0.68395)写死在
完成上述配置后,执行 mvn clean verify 即可成功解析 org.sonarlint.eclipse.ui 及其传递依赖,构建流程将顺利通过。











