1

哪些文件需要提交给项目的源代码管理才能共享构建器?

我正在使用 Eclipse 开发一个项目(版本 Juno Service Release 1 - Build id: 20120920-0800)。我们的团队使用 Perforce 作为该项目的源代码控制手段。为此,我们使用 P4Eclipse 插件。

我遇到的问题是当我将新的 Builders 添加到项目中时。

我的 Builder 的图像

生成器设置

Builder 在本地运行良好,但在我将该更改提交给 Perforce 后,任何同步的人都会收到错误。如果他们打开项目的 Builder 设置,我添加的 Builder 已替换为错误消息:

无效的外部工具

我已经提交了 .project 文件和 .launch 文件。显然,我还需要提交更多内容。

再深入一点,我发现在其他用户的机器上,我提交给 Perforce 的 .launch 文件实际上已经被 Eclipse 删除了!只需打开包含项目的工作区就会导致它删除该文件。我相信这是“无效的外部工具”错误的原因;不是该工具已损坏或其他原因,而是它甚至不存在。

进一步测试,我让用户在本地手动创建一个具有完全相同名称的新 Builder。然后他们关闭了 Eclipse,并恢复了他们所做的所有更改。因此,在这一点上,本地项目与他们之前的项目完全匹配。但是现在当他们打开 Eclipse 时,我提交的 Builder 加载正常!

这意味着有一些本地设置告诉 Eclipse“不要删除 .launch;它是需要的”,并且通过简单地在本地创建一个(甚至在之后恢复该更改)来设置该消息。

所以我的最终问题是:为了共享项目的 Builder 设置,哪些文件需要处于源代码控制之下?


我又做了一个测试:

这次我复制了我的项目目录和工作区目录,然后创建了一个新的 Builder。然后我对整个项目目录和工作区目录进行了比较。

在项目目录中,仅更改/添加了 .project 和 .launch 文件,但这两个文件都已受源代码控制。

在工作区中更改了许多文件,但大多数是二进制文件,并且通过它们查看没有对我添加的 Builder 的引用。

4

5 回答 5

1

找到一个具有正确启动的构建器的项目。接下来查看项目中的所有“点资源”(.project、.classpath、.settings/ 等),看看哪些文件包含用于支持构建器的信息。然后查看您的 Perforce 配置以确保您没有忽略那些点文件。有时版本控制插件默认不会保存点资源文件,因为它们有时依赖于机器。可能不是所有的点文件都进入了另一台机器,并且构建器工具中的迁移功能删除了所有点文件,以免配置不完整。

于 2012-10-19T22:32:55.540 回答
1

我会说,很可能只是他们没有构建器引用的文件和目录。在http://tinypic.com/view.php?pic=al3nkg&s=6的图片中可以看出,您触发了某个应用程序,该应用程序位于某个父目录中。我认为解决方案可以是,他们在其他路径上有这个工具(bootinfo.bat),或者他们没有。如果这是真的,eclipse 无法启动它。最好使用 eclipse 运行一些包含外部工具的工作区。

于 2012-10-20T20:37:31.867 回答
1

我一直无法找到答案。

我在 Eclipse 论坛上发表了一篇文章:http: //www.eclipse.org/forums/index.php/m/950400/#msg_950400

我还记录了一个错误:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=392611

在撰写本文时,双方都没有任何回应。

于 2012-10-29T17:46:14.710 回答
1

我刚刚在 Eclipse Kepler 上遇到了这个问题。在 Project -> Refresh 之后,它奇迹般地为失踪的建设者提供了资金。

于 2013-09-21T20:26:03.183 回答
0

您还需要检查位于工作区/.externalToolBuilders 中的 eclipse 生成的“your_builder.launch”文件。

于 2014-01-14T20:48:52.187 回答