和 .project 文件说“再见”—— VS Code Java 1.1.0 背后的故事( 三 )


于是我们从 File System Provider 这一拓展点入手 , 继承并覆盖了 Eclipse 默认处理 URI scheme 为 file 的文件系统 , 通过覆写其中的一些方法 , 让文件系统在处理元数据文件时 , 将文件路径重定向到项目路径之外的地方进行读写 。 相比于方案二 , 这一套方案的优点在于:

  • 对其他模块完全透明, 基本不需要进行修改就能正常工作 , 这同时还意味着较好的 拓展性。
  • 代码量很小, 最终的实现 , 算上 JavaDoc 和注释 , 一共只有 300 行左右 。
当然这个方案也并非完美 , 因为它要求其他模块通过 Eclipse 提供的 API 进行对元数据文件的读写操作 。 我们在实现过程中就发现上游 Buildship 在 处理元数据文件时直接通过 JDK 中的文件 I/O API 进行读写 , 为此我们提交了一份 变更请求将相关操作迁移到了 Eclipse API 上 。
  • 处理元数据文件时直接通过 JDK 中的文件 I/O API 进行读写: https://github.com/eclipse/buildship/issues/1111
  • 变更请求: https://github.com/eclipse/buildship/pull/1114
总结
和 .project 文件说“再见”—— VS Code Java 1.1.0 背后的故事
文章图片

和 .project 文件说“再见”—— VS Code Java 1.1.0 背后的故事
文章图片

在权衡了利弊之后 , 我们最终选取了第三套方案并解决了这一困扰了 VS Code Java 用户三年多时间的问题 。 虽然最终的实现并不复杂 , 但探寻答案的过程却非常具有戏剧性 。
最后特别感谢 Eclipse Platform 项目成员 Mickael Istria 以及 Alexander Fedorov 。 在问题讨论的过程中他们给予了非常有用的建议 , 对问题的解决起到了非常关键的作用 。
反馈与建议:
请积极使用我们的产品!您的反馈和建议对我们非常重要 , 并将帮助我们做得更好 。 有几种方法可以给我们留下反馈
  • 填写中文问卷 https://www.research.net/r/vscodejava?lang=zh
  • 在这个帖子下留言
  • 在我们的GitHub repo上 创建Issue https://www.research.net/r/vscodejava?lang=zh
资源:
以下链接和资源能帮助您更好地了解Java on Visual Studio Code的相关信息
  • 了解 更多 Visual Studio Code上Java 的更多信息 https://code.visualstudio.com/docs/languages/java
  • 逐步探索 有关Visual Studio Code的Java教程 https://code.visualstudio.com/docs/java/java-tutorial
Visual Studio Code开发Java资源

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。