0

リリースせず、デプロイするだけのMavenベースのJavaWebアプリはほとんどありません。

私は長い間、作成されたアーティファクトのバージョンを変更していないことに気づきました。これは、作業を追加するだけであるためです。すべての依存関係のバージョンを変更するなどです。

私がチームで作業しているときでも、バージョンはあまり気にせず、常に1.0.0-SNAPSHOTを使用しており、コードを共有してすべてを再構築します。

私の質問:アーティファクトバージョンは何に使用しますか?私はそれを活用するいくつかの良い方法を逃していますか?

更新:この質問は、Mavenと依存関係を正当化することに関するものではありません。それは私のウェブアプリのもののバージョンについてです。

4

2 に答える 2

0

この質問は、Mavenを使用するオーバーヘッドを正当化することに関するものだと思いますか?その場合、それは以下に関連しています:

私の意見では、バイナリのバージョン管理は、ソースのバージョン管理と同じくらい重要です。

  • サードパーティのソフトウェアライブラリに依存している場合、それらは時間とともに変化します。これらのライブラリは、他のライブラリに依存しています。オープンソースの世界は急速に変化しており、楽しいことではありませんが、少なくともMaven/ivyのようなツールはこれを管理するためのツールを提供してくれます。
  • リリースされたソフトウェアは時間の経過とともに変化します。複数の開発者がいると仮定すると、デプロイされた環境で再現できない奇妙なことが起こっていることに気づいたことがありますか?バイナリバージョン管理を使用せずに、問題をどのようにロールバックまたは再現しますか?
  • 最悪の場合、展開が開発者のPCから直接行われている場合、開発者が実際に変更をコミットしたことをどのように確認できますか?

Mavenの全機能を利用するには、 NexusなどのMavenリポジトリマネージャーをローカルで使用することを強くお勧めします。サードパーティの依存関係を支援することに加えて、アプリケーションのバージョンを保存するための理想的な場所でもあります。1.0.0-SNAPSHOTを引き続き生成する場合でも、Nexusは、各アプリケーションビルドがリポジトリ内に一意のタイムスタンプ付きリビジョンとして保存されるようにします。時間が経つにつれて、Nexusは古いSNAPSHOTSを削除するように構成できます。

于 2012-07-22T10:47:37.503 に答える
0

自分の経験に基づいて、Webアプリのアーティファクトのバージョンを追跡しないことにしました。公開されておらず、私たちは小さなチームであるため、バージョン管理にはgitタグのみを使用し、Mavenアーティファクトを常に1.0-SNAPSHOTとして保持します。

于 2012-12-16T04:43:19.047 に答える