2017-09-19 9 views
1

プロジェクトでは、プロジェクトバイナリのスナップショットをtomcat/libディレクトリにデプロイします。一般的に、ポンポンにそのQA/devの環境に配備SNAPSHOTバージョンをQAとProdにデプロイする

<version>0.2.22-SNAPSHOT</version> 

とJARファイル言及した私たちは、ビルドが正確に起きていないように、いくつかのコードを反映しており、いくつかのではないの後、いくつかの一貫性の問題に直面している

my-project-0.2.22-SNAPSHOT.jar 

ですビルド、時にはその古い+新しいコードをマージしました。

私の質問は、環境にスナップショットのバージョンを配備しているため、このような問題が発生する可能性があるかどうかです。また、環境にスナップショットを展開するのはこの良い習慣ですか?

ありがとうございます。

+0

これに簡単な答え:スナップショットをQAにもPRODにも置かないでください。開発者以外の誰かに配信するようになったら、リリースを行います... – khmarbaise

答えて

0

慣例として、スナップショットバージョンは未発売バージョンです。アイデアは、リリース前にはSNAPSHOTがあり、このSNAPSHOTはリリースになる可能性があることを表しています。ここ

は、具体的な例は次のとおり

  • T1:リリース1.0
  • T2ためDEVサイクルを開始:
  • T3第1.0-SNAPSHOTを展開してテスト:第1.0-SNAPSHOTを展開してテスト
  • T4:3番目の1.0-SNAPSHOTを展開してテストしてください
  • T5:1.0-SNでサインオンを取得APSHOTは
  • T6:1.0
  • T7への分岐、アップデートバージョン:
  • T8をprodに1.0を展開:リリース1.1
  • ためのdevのサイクルを開始...これはの、ある

繰り返しもちろん、簡素化されていますが、キーポイントは確かです。

  • 任意のリリースはそのリリース
  • のスナップショットのバージョンがある存在する前に、開発サイクルがSNAPSHOTバージョンが最終的に近いと近づくべきで進行するにつれリリースXのスナップショットのバージョンは、基本的にa developemnt version of X
  • を意味し、 RELEASEバージョン
  • 通常、SNAPSHOTバージョンは開発中のみ存在し、RELEASEバージョンはSNAPSHOTに依存してはいけません。
  • SNAPSHOTのバージョンは更新できますが、RELEASEのバージョンは変更できません。だから、1.0-SNAPSHOTを今日ダウンロードすると、あなたは1.0-SNAPSHOTを昨日ダウンロードしたときに得たものとは異なるファイルを得ることができます。 Mavenの下で気をつけているのはちょっとです。 1.0-SNAPSHOTをインストールまたは展開すると、Mavenはそのバージョンを1.0-yyyMMdd-HHmmSS-iに展開し、タイムスタンプ固有のバージョン1.0-SNAPSHOTを作成します。その依存関係をいつ解決するかによって、1.0-SNAPSHOTの別のバージョンが得られる可能性があります。Mavenがリポジトリ設定のupdatePolicyを使ってSNAPSHOT依存関係を解決する方法を制御できますが、中心点は残っています。あなたは決してになることはできませんあなたはSNAPSHOTバージョンに頼るときにどんなバージョンが得られるでしょうか。これはdevでうまくいきます(実際にはdevの動作が望ましい)が、この再現性の欠如はPRODでは危険です。ビルドが正確に起きていないように、いくつかのコードを反映しており、いくつかは、後に

    を構築していない、

    我々はいくつかの一貫性の問題に直面している:私は上記のあなたは、これらの問題が発生した理由を説明するのに役立つはずだと思う

一般に、SNAPSHOTはDEVでのみ使用する必要があります。公式のテスト環境(QAなど)とでは、確かにのPRODでは、SNAPSHOTのバージョンを導入したり、頼りにしてはいけません。

PRODと正式なテストエヴァンスとリリースバージョンでは、その中にあるものを正確に言うことができるようにするために、ビルドをする必要があります(これは不変であるため)。あなたのビルドでは、あなたがビルドする予定のものです。

関連する問題