2

これは私が尋ねた前の質問からの続きの質問です

プロジェクト ツリーのルートに /externals ディレクトリが作成されました。この中には、別のプロジェクトへの参照があります。メイン プロジェクトの NAnt スクリプトですべての外部のビルドをスクリプト化できます。これらのビルドの結果は次のとおりです。

/externals/external-project1/build/buildartifacts/{dlls|html|js}

/externals/external-project2/build/buildartifacts/{dlls|html|js}

これで問題ありませんが、私のメイン プロジェクトがこれらのビルド アーティファクトをどのように参照するかについて興味があります。たとえば、外部プロジェクトが、コードベースの一部が依存する DLL をビルドするとします。ビルド アーティファクト ディレクトリの DLL を参照するだけですか、それとも / thirdparty/libs/ フォルダーにコピーする別の NAnt タスクを実装する必要がありますか?

これは、私のビルドがこの外部プロジェクト (内部またはサードパーティのいずれか) をビルドする機能に依存していることを意味します。ビルド アーティファクトの最新セットをチェックインして、依存ビルドが壊れたためにメイン ビルドが壊れないようにするのは良い考えですか?

それが十分に明確であることを願っています。これを書き留めるだけで、私にとって問題はほとんど明確になりません:-)。

- 編集 -

みんなありがとう。「リビジョンのチェックアウト」を実装すると思いますが、ビルドが非常に速いため、ビルド アーティファクトをチェックインするつもりはありません。また、外部プロジェクト (プロトタイプ、swfobject など) の依存関係を処理する方法を理解する必要があります。

4

2 に答える 2

1

私が持っていた推奨事項の 1 つ (Mike Mason による Pragmatic Version Control の本から来たと思います) は、外部の特定のリビジョンを参照して、明示的に変更することを選択するまで、常に同じバージョンの外部依存関係を取得することです。

この時点で、おそらく一度インタラクティブにビルドして動作を確認しているので、毎回ビルドすることに依存することは実際には問題ではなく、ビルド タスクに何らかの間接化を追加する必要がありません。

間接化を選択した場合、何らかの理由でビルドが外部で失敗した場合、次の nant タスクが前のバイナリを取得するため、これが見逃される可能性があります。

于 2008-10-02T23:35:20.323 に答える
1

それらを一度ビルドして、/public/ext/some_dependency/ref のビルド アーティファクトを確認し (明らかに、そのフォルダーの名前はあなた次第です :-))、そこからそれらを参照します。

私の主な理由は、製品をビルドするたびに外部依存関係を構築する必要がほとんどないからです。一般に、外部依存関係はめったに変更されません。さらに、外部依存関係の変更をいつ選択するかを厳密に制御して、コーディング フェーズ中に不安定になることを回避する必要があります。

これの拡張として、外部依存関係のみを構築し、外部条件 (依存関係ソース フォルダーでのコミットなど) で前述のフォルダーでそれらをチェックする別の CI タスクを追加します。

于 2008-10-02T23:25:48.617 に答える