Eclipse CDT 自动更新/同步项目列表(以方便"refresh"相关项目集)

Eclipse CDT update/sync project list automatically (to easy "refresh" related project set)

本文关键字:项目 方便 refresh 列表 CDT 更新 Eclipse 同步      更新时间:2023-10-16

历史上下文:

我们有一个由以下部分组成的项目:

  • 主机应用程序(C++(
  • 脚本引擎库(也用C++编写(
  • 很多C++插件(大约30+(
  • 很多剧本把所有的东西联系在一起

从一个版本到另一个版本,一些插件被添加,一些被删除。到目前为止,我们使用Visual Studio解决方案(*.sln(来包含主机应用程序、脚本引擎库和插件的所有项目(*.vcxproj((每个插件一个*.vcxpro!(。为了共享源代码/项目,我们使用专有的源代码管理系统,到目前为止,一旦我们合并了服务器上的更新(添加了一些插件项目,删除了一些插件工程(,VS中的所有项目树都被刷新了,这要归功于"重载"功能(不需要开发人员执行任何操作即可查看和构建更新的源代码树(。

问题:

现在,我们的高级管理层决定切换到Eclipse CDT/MinGW对,我们面临的问题是Eclipse Workspace与Visual Studio*.sln不是一回事…

现在,当一些插件项目文件夹出现或某些插件项目文件夹消失时,相应的工作区项不会相应更新。

因此,从现在起,每个开发人员都必须使用File>Import…>常规>"现有项目进入工作区">文件/"从文件系统打开项目",在其他开发人员将新项目添加到源代码管理后手动将其添加到自己的工作区。此外,还必须从自己的工作区手动删除那些从源代码管理中删除的插件项目。。。

这与我们以前在Visual Studio中使用的功能形成了鲜明对比,Visual Studio中的"重载"功能自动更新项目/源树(只是因为所有信息都是用*.sln/*.vcxproj从服务器到达的(。

我们的第一个选择是将Workspace\.metadata等内容放在源代码管理中(就像我们之前对*.sln文件所做的那样(,但"这不是Eclipse Workspace的使用方式"(这甚至是不可能的,因为.metadata\*中的路径是绝对的,而且大量的Workspace\*内容根本不可合并(

问题:

是否有某种方法可以自动同步Eclipse CDT工作区和从源代码管理获得的项目集。就像只需按下一些(隐藏的?(神奇的"刷新"按钮(在要安装的特殊插件中或类似的东西中(,所有新项目都将自动添加到工作区的源树中,删除的项目也将自动消失,您是否需要使用所有这些"导入"向导,而不需要手动删除删除的项目?

Eclipse中可能有一种特殊的"Container"项目类型扮演着与Visual Studio中*.sln相同的角色或类似的角色?

可能还有其他选择吗总体意图不是用某些Eclipse等价物替换*.sln,而是在将一堆插件项目作为一个整体进行管理时支持类似的工作流程,并且项目集"刷新"是一个简单的操作,不需要团队中的每个人手动跟踪该集中出现/消失的项目。

您看过使用CMake生成Eclipse项目文件吗?然后,您可以将这些导入到Eclipse工作区中。

这不是自动的,但如果为每个零件创建单独的CMakeLists.txt文件,那么当您只想加载项目的子集时,您可以很容易地在主CMakeList.txt文件中注释该零件的包含,并重新生成项目文件。

https://cmake.org/Wiki/Eclipse_CDT4_Generator

如果您想更改回VS或其他IDE,CMake也可以为此生成项目文件。

我个人只使用CMake生成VS解决方案和Unix生成文件,所以我不能保证它的工作效果。

HTH。


附带说明一下,为什么管理决定使用Eclipse而不是Visual Studio?这听起来像是一个糟糕的决定,在做出决定之前没有事实依据或影响研究。

是因为Eclipse是免费的吗?他们有没有考虑到是什么降低了开发人员的生产成本?