7

現在、ショップの製品全体をパッケージ化するためのリリース プロセスの自動化/改善に取り組んでいます。現在、製品は次の組み合わせです。

  • Java サーバー側コードベース
  • XML 構成およびアプリケーション ファイル
  • 管理者向けのシェルおよびバッチ スクリプト
  • 静的に提供される HTML ページ
  • 他にもいくつかありますが、それがほとんどです

それらのすべてまたはほとんどには、さまざまな目的で使用されるさまざまなバージョン情報が含まれています。リリース パッケージ プロセスの一部には、情報を更新するために (スクリプトで) 検索、grep および sed を多数実行することが含まれます。製品をパッケージ化するこの接着剤は、有機的でジャストインタイムの方法で一緒に石畳になっているようで、維持するのはかなりひどい. たとえば、一部の Java メソッドは、リリース時の Date オブジェクトを作成します。その引数は、コンパイラの検証なしで、テキストの置換によって更新されます。

「xyzの機能を使用してこれを行う」ことを避け、一般的な慣行に集中したいので、実際に使用されているソフトウェア(CVS、SVN、antなど)の例を挙げないようにしています。問題の原因を粗悪な設計のせいにしたいのですが、さまざまなテクノロジを使用してやり直す必要がある場合、慣習を定める以外に、これを処理する最善の方法がわからないでしょう。

私の質問は、さまざまなテクノロジ、ファイルタイプ、プラットフォーム、およびバージョン管理システム間でバージョン管理情報を維持および更新するためのベスト プラクティスまたはヒントやヒントはありますか?

4

3 に答える 3

3

バージョン番号を含むプロパティ ファイルを作成し、さまざまなコンポーネントのすべてがプロパティ ファイルを参照するようにします。

  • Java ファイルは、次の方法でプロパティを参照できます。
  • XML はインクルードを使用できますか?
  • HTML は JavaScript を使用して、HTML のプロパティからバージョン番号を書き込むことができます
  • シェルスクリプトはファイルを読み取ることができます
于 2008-10-22T16:12:34.303 に答える
2

実際、Craig Angus の回答を完成させるために、ここでの経験則は、通常の配信ファイルにメタ情報を含めず、それらのメタデータ (バージョン番号、リリース日など) を1 つの特別なファイルに報告することです。 -- リリースに含まれています --。

これは、開発から承認、本番前まで、1 つの VCS (バージョン管理システム) ツールを使用する場合に役立ちます。
つまり、ワークスペースをロードするたびに (開発、テスト、または本番環境へのリリースの準備のいずれか)、それはすべての詳細を提供するバージョン管理ツールです。

配信 (パッケージ化されたファイルのセット) を準備するときは、保持したいすべてのメタ情報についてその VCS ツールに問い合わせて、それらのファイルのセットに含まれる特別なファイル自体にそれらを書き込む必要があります。

その配信は、外部ディレクトリ (ワークスペースの外部) にパッケージ化する必要があります。

  • 非公式リリースの場合は、共有ディレクトリ (または Maven リポジトリ) にコピーします(ただし、配信を待っている隣のチームを支援するための簡単なパッケージにすぎません)。そうすれば、1 日に 10 回または 20 回の配達を行うことができますが、問題はありません。簡単に使い捨てできます。

  • 公式の配信として機能するために VCS にインポートされ、適切な配信の適切なバージョンをバージョン管理ツールに要求するだけで簡単に展開できるようになり、展開を開始できます。

注: 多くの相互依存プロジェクトで主に使用されるリリース管理プロセスについて説明しました。1 つの小さな単一プロジェクトの場合、VCS ツールでのインポートをスキップして、配信を別の場所に保存できます。

于 2008-10-22T17:04:47.863 に答える
0

Craig Angus のものに加えて、使用されたツールのバージョンが含まれています。

于 2009-12-10T21:52:23.050 に答える