【问题标题】:NetBeans Build Files Are Never CorrectNetBeans 构建文件永远不会正确
【发布时间】:2011-04-13 09:26:36
【问题描述】:

我目前的团队已将 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?我希望不会。

你们怎么看?解决这个问题的正确方法是什么?

【问题讨论】:

    标签: svn netbeans ant build-process


    【解决方案1】:

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

    如果每个人都共享相同的环境,也更容易查明错误的根源。

    【讨论】:

      【解决方案2】:

      如何使用版本化的 build-imp.xml.template 并忽略有关源代码控制的 build-imp.xml。用户可以“轻松”将他们的“个人”构建文件与版本化文件合并。还能够通过“build-imp.xml.template”将更改传播给他们的同事。

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

      【讨论】:

        【解决方案3】:

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

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

        我们不会提交 .class 文件,实际上是从 NetBeans 构建过程生成的任何内容到源代码控制存储库。

        所有本地定制都应在项目根目录下的 build.xml 文件中完成,如果是每个开发人员的定制,则不应将其重新提交到存储库。 nbproject/build-impl.xml 一旦被 NetBeans 项目生成器创建,就不会被触及。

        关于 图沙尔

        【讨论】:

          猜你喜欢
          • 2021-05-17
          • 2013-07-20
          • 1970-01-01
          • 1970-01-01
          • 2023-03-27
          • 2013-03-01
          • 2013-11-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多