プロダクトをビルドするとき、ビルド・プロセスの出力をログ・ファイルに収集します。ログを注意深く確認し、ビルドにエラーや問題の標識がないか調べます (ビルドがバッチ・ファイルまたはスクリプトによって自動化されている場合、出力をログ・ファイルに送信することができます)。
ビルド環境を注意深く制御します。ビルド環境は makefile 内で部分的に定義されているため、開発者によってチェックインされた makefile を確認してクリーンな状態であることを検査します。
例えば、開発者が makefile をチェックアウトし、ライブラリー・ファイルのテスト・バージョンを参照するように makefile をカスタマイズした後、その makefile を誤ってチェックインすることがあります (ビルド管理のビルドは開発者のテスト・ライブラリーを参照し、ビルドの問題の原因となります)。
コンパイル時に、Java ソース・ファイルは多くのクラス・ファイルを生成する可能性があり、それらの一部の名前は固定した名前ではなく、事前に把握できません。匿名内部クラスのクラス・ファイルの名前には、連番の接尾部が付けられます。Java クラス・ファイルを制御した場合、一時的な名前を持つオブジェクトの履歴には意味がなくなります。 この一時的な名前は、異なる時点における異なる匿名内部クラスを示します。さらに、クラスが削除された場合、Java コンパイラーは、そのクラスについて以前存在していたクラス・ファイルを削除しません。対応するオブジェクトをプロジェクトから手動で削除する必要があります。コンパイル前にすべてのクラス・ファイルを削除することによって命名の問題を回避する場合、制御されたすべてのクラス・ファイル・プロダクトはビルドのたびに変更されたように表示されます。
クラス・ファイルを制御する代わりに、jar ファイル (または使用するアプリケーションに該当する ear ファイルまたは war ファイル) をビルドして制御してください。
スクリプトおよびツールがプロダクトをビルドする場合、これらのスクリプトおよびツールをデータベース内で制御することを検討します。ソフトウェアの各リリースをビルドするために使用するツールの正しいバージョンのコピーを制御して保持することで、古いリリースを再ビルドしたり、古いリリースにパッチをビルドしたりすることが容易になります。古いマシンおよびオペレーティング・システムにアクセスすることが必要な場合もあります。
非制御のプロダクト・ファイルが複数のビルド・マネージャーによって書き込み可能になるようにします。
ほとんどのチームは、ライブラリーや実行可能ファイルなどの最上位プロダクトは管理しますが、.obj ファイルなどの中間プロダクトは管理しません。 中間プロダクトは増大することがあります。これらを制御すると、ユーザーはプロダクト・ファイルの異なるコピーを多く作成することになるため、データベースが急速に増大します。非制御のプロダクトはユーザーのワークエリアにのみ存在します。
プロダクトが制御されないため、Rational Synergy は所有者またはアクセス権を設定しません。したがって、ワークエリア内の非制御プロダクトを複数のビルド・マネージャーが更新できるようにするための追加のステップを実行する必要があります。 自分だけが変更可能な権限を使用してビルド・マネージャーが非制御プロダクトを作成した場合、その非制御プロダクトを削除せずに別のビルド・マネージャーがプロジェクトを再ビルドすることはできません。
非制御プロダクトが複数のビルド・マネージャーによって書き込み可能になるようにするには、以下のステップを実行します。
別の方法として、中間プロダクトをビルドする前に中間プロダクトを削除するか、中間プロダクトをビルドした後にファイル権限を変更してグループを設定し、グループに書き込み権限を許可するようにビルド・スクリプトまたは makefile を更新することもできます。