我的团队已经将NetBeans标准化为我们所有Java开发的工具,并使用由NetBeans生成的ANT文件作为我们的官方构建过程。
但是这些文件总是出错。
团队的不同成员使用不同版本的NetBeans,显然,他们都会生成略有不同的"build-impl.xml"文件。因此,在IDE启动时,NetBeans将重新生成它认为不正确或过时的任何这些文件。
但是(由于这些文件被检入源代码控制,作为我们的官方构建脚本),构建文件通常与存储库不同步。如果我从我的机器上检入自动生成的更改,则团队中的其他人将不得不覆盖自己的本地构建脚本副本,导致NetBeans抱怨文件已过期并需要重新生成。
大多数情况下,这只是一个烦恼。自动生成的构建脚本中的虚假差异每次开发人员进行检入时都会增加很多噪音。或者IDE不断抱怨外部修改的构建脚本。你赢不了。
但我也一直有一种恒久的感觉,即没有人拥有完全正确的构建脚本,我们正在整个构建过程中引入不确定性。
据我所知,解决这个问题有两种可能的方法:
1)标准化一个特定的NetBeans版本。不允许人们升级,直到我们作为团队做出决定为止。不要让人们滞后于旧版本。如果团队中的每个人都使用相同的NB版本,则这些问题(可能)会消失。
2)不要将"build-impl.xml"脚本检入源代码控制。它是由IDE自动生成的,因此是"build.xml"和"project.xml"文件的产物。生成的文件(如".class"文件)不应该被检入源代码控制,而应该在构建过程中重新生成。找出NetBeans用于生成"build-impl.xml"文件的机制,并在我们的构建服务器上执行相同的机制。这是否意味着我们的构建服务器必须依赖于NetBeans GUI?我希望不是。
你们认为呢?解决这个问题的正确方法是什么?