构建产品时,请在日志文件中捕获构建过程的输出。仔细检查日志以查找构建中的错误或问题提示。(如果构建通过批处理文件或脚本进行了自动化,那么可以将输出定向到日志文件中。)
仔细控制构建环境。由于构建环境在 makefile 中进行了部分定义,因此请检查由开发者检入的 makefile 以验证这些文件是否未经使用。
例如,开发者检出 makefile 并将其定制为引用其测试版本的库文件,然后意外检入该 makefile。(现在,构建管理构建引用的是开发者测试库,因而导致构建问题。)
编译后,Java 源文件可产生许多类文件,其中一些类文件的名称不固定且提前已知。匿名内部类的类文件具有带顺序编号后缀的名称。如果控制 Java 类文件,那么具有临时名称的对象的历史记录没有意义。 临时名称在不同时间表示不同的匿名内部类。此外,如果除去了某个类,那么 Java 编译器不会删除该类的预先存在的类文件。必须手动从项目中除去对应对象。如果通过在编译之前删除所有类文件,作为针对命名的变通方法,那么所有受控类文件产品在每个构建中看起来都会更改。
请构建 jar 文件(或者 ear 或 war 文件,根据应用程序而定)并对其进行控制,而不是控制类文件。
如果脚本和工具可构建产品,请考虑在数据库中控制这些脚本和工具。通过保留用于构建每个软件发布标识的适当版本的工具的受控副本,可以更轻松地重新构建先前发布标识,并且对先前发布标识构建补丁。您还可能需要访问先前的机器和操作系统。
请确保非受控产品文件可供多个构建管理员写入。
大多数团队控制顶级产品(如库和可执行文件)而不是中间产品(如 .obj 文件)。 中间产品可能变得较大。如果对其进行控制,那么数据库会快速增长,因为用户会创建许多不同的产品文件副本。非受控产品仅在工作区中存在。
由于产品不受控制,Rational Synergy 不会设置所有者或访问许可权。因此,必须采取额外步骤来确保多个构建管理员可更新工作区中的非受控产品。 如果构建管理员使用只有其可修改的许可权来创建非受控产品,那么其他构建管理员在不删除这些非受控产品的情况下无法重新构建项目。
要确保非受控产品可供多个构建管理员进行写入,请执行以下步骤:
或者,更新构建脚本或 makefile 以删除中间产品(构建之前),或者更改文件许可权以设置组并允许组写访问权(构建之后)。