代码之家  ›  专栏  ›  技术社区  ›  benjismith

NetBeans构建文件永远不正确

  •  6
  • benjismith  · 技术社区  · 14 年前

    我现在的团队已经在NETBeCes上对所有的Java开发进行了标准化,并且我们使用NETBeS生成的Ant文件作为我们的正式构建过程。

    但是文件总是错的。

    团队的不同成员使用不同版本的Netbean,显然,他们都生成了稍微不同的“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 回复  |  直到 14 年前
        1
  •  4
  •   Avall    14 年前

    我认为你应该选择1号,让你所有的队友使用相同的NetBeans版本。在我的工作中,我们也在NetBeans中开发,但是我们都使用相同的版本,并且同时升级。在过去的两年里,我一直在使用NetBeans,我经历过每一个版本(现在更少)都会发生不同的变化,从配置到表单文件,所以我觉得最好减少不同版本的潜在问题。

    如果每个人都共享相同的环境,那么更容易确定bug的来源。

        2
  •  0
  •   zellus    14 年前

    使用版本控制的build-imp.xml.template并忽略源代码管理的build-imp.xml,怎么样?用户可能 “容易” 将他们的“个人”构建文件与版本控制的文件合并。还可以通过“build-imp.xml.template”将更改传播给同事。

    你可以看看 Understand MacroDef Tasks in Netbeans Build Files .

        3
  •  0
  •   Tushar Joshi    14 年前

    根据我的意见,以下文件夹不应添加到源代码管理中:

    1. 生成(包含.class文件)
    2. dist(包含内置jar文件)
    3. nbproject/private(同时包含本地计算机特定文件)

    我们将不提交.class文件,事实上,任何从netbeans构建过程生成的文件都不会提交给源代码管理存储库。

    所有本地自定义都应在保存在项目根目录中的build.xml文件中完成,如果这些自定义是每个开发人员的,则不应将它们重新提交到存储库中。netbeans项目生成器创建后,不应触摸nbproject/build-impl.xml。

    关于问候 图沙尔