私が開発をしているとき依存関係を変更する必要があることがよくありますが、変更を展開する準備ができていません。例えば、私はプロジェクトFooで作業しています。私は共通ライブラリにメソッドを追加する必要があることを認識しています。この変更を社内のリポジトリに展開する前に、共通ライブラリ(mvn install
)に変更をインストールし、Fooを再コンパイルしてローカルリポジトリに共通ライブラリを使用するようにします(すべてのSNAPSHOTバージョンを使用しています)。なぜローカルリポジトリの前に内部リポジトリを使用するのですか?
私の共通ライブラリであるFooを再コンパイルすると、新しい共通ライブラリは使用されません。内部リポジトリには共通ライブラリの最新のSNAPSHOTがそのまま使用されます。変更された共通ライブラリをデプロイすると、Fooはそれを直ちに取得します。
どうすればmavenをローカルのリポジトリで最初に探すことができますか?
更新:ファイルがローカルリポジトリにインストールされると、ファイル名はfoo-1.0.0-SNAPSHOT.jar
になりますが、展開するとタイムスタンプfoo-1.0.0-20111104.191316-23.jar
が取得されます。私はこれが、リモートアーチファクトが毎回引き出される理由だと思う。 mvn install
がmvn deploy
のように機能していない理由は何ですか?デプロイメント用に設定されたスナップショットリポジトリがあるという事実と関係がありますか?
[settings.xml](http://maven.apache.org/settings.html)に、存在しない場所を示す 'localRepository'がありますか? – millhouse
システムの日付と社内のレポ(Nexusなど)システムの日付を比較します。それが先行すれば、そのタイムスタンプは "勝つ" – millhouse