NetBeans构建文件从未正确

6

我的团队已经将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?我希望不是。

你们认为呢?解决这个问题的正确方法是什么?

3个回答

4
我认为你应该选择第一种方案,让所有团队成员使用相同的NetBeans版本。在我的工作中,我们也使用NetBeans进行开发,但我们都使用相同的版本,并且同时升级。过去两年我一直在使用NetBeans,我发现每个版本都会有一些变化(现在变化较少),从配置到表单文件等等,因此我认为最好尽量减少不同版本之间潜在的问题。
如果每个人都共享相同的环境,也更容易定位错误的源头。

0

使用一个版本化的build-imp.xml.template文件,并忽略与源代码控制相关的build-imp.xml文件,这个方案怎么样?用户可以“轻松”地将他们的“个人”构建文件与版本化的文件合并。同时,也可以通过“build-imp.xml.template”向同事传播更改。

您可以查看在Netbeans Build Files中理解MacroDef任务


0

依据我的意见,以下文件夹不应该被添加到源代码控制:

  1. build(包含.class文件)
  2. dist(包含构建的JAR文件)
  3. nbproject/private(包含本地机器特定的文件)

我们不应该将.class文件或者从NetBeans构建过程中生成的任何东西提交到源代码控制库中。

所有本地自定义都应该在项目根目录下的build.xml文件中完成,如果这些自定义是针对每个开发人员的,则不应重新提交到存储库中。nbproject/build-impl.xml一旦由NetBeans项目生成器创建,就不应再进行修改。

敬礼 Tushar


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接