Maven
を使用し、同じ会社/チームまたは同じ人でも開発されたdependencies
のプロジェクトがあるとしましょう。一部のデベロッパーがcompile
プロジェクトに参加したい場合、specified dependencies
はレポからフェッチされ、まだ存在しない場合はローカルにダウンロードされることは明らかです。内部依存関係のMavenバージョン管理
今度は、次のシナリオを想定してみましょう:
開発者は、依存関係についてを気にしないと
依存関係のバージョンは
x.x.x.SNAPSHOT
=>maven
が最新バージョンを取得しますです24時間ごとにRepoの(デフォルト)。 問題:このバージョンがあなたのプロジェクトと互換性がない場合、基本的に、プロジェクトで何も変更しなかったために何が起こったのか分かりません。唯一可能なソリューションは、依存関係をローカルでコンパイルして管理することです。依存関係のバージョンは "x.x.x.y" => mavenはこのバージョンとまったく同じものをフェッチします。ですから、この依存関係を更新するにはバージョンを変更する必要があります。 問題:この依存関係に変更が加えられ、コードがサーバーにプッシュされるたびに、のバージョンを変更する必要があると思われます。しかし、これはばかげて聞こえる。
解決策:
この場合の唯一の可能な解決策は、(レポからソースを取得し、ローカルでコンパイル)手動internal dependencies
を処理するためにあるようです。しかし、これらの2つの問題は、私を悩ませています
- このソリューションは、すべての依存関係を取得する必要があり
maven
の全体的なアイデアを破ります。 - このソリューションは、プロジェクトで開発を始めたいだけの開発者にとっては困難ですが、依存関係は気にしません(依存関係は作業中のプロジェクト部分では使用されないためです)。
もっと良い解決法はありますか?
開発者が自分の仕事を真剣に受け止めていないよりも、依存関係を気にしないならば...さらにSNAPSHOTはあなたが開発者の下にいるということを意味します...互換性はmajor.minor.patch verisonによって表現されます..あなたがバージョンコントロールに書かれているよりも新しいリリースを持っている場合、依存関係を更新する必要があるということが起こります。 – khmarbaise
これは、私たちがいつも手作業でローカルにコンパイルしているなら、mavenを使用する必要はないということですか? – Rufi
これはあまりにも多すぎて私が気にしていなかったことですが、開発者は依存関係に興味がありませんが、最新の作業バージョンがほしいと思っていますが、この依存関係は開発プロセスにあります。 – Rufi