2017-02-23 3 views
2

ローカルスナップショットとリモートスナップショットが異なる場合、mavenのスナップショット機能の動作を確実に理解したいと思います。例えば、私がプロジェクトAを持っていて、プロジェクトBがAであり、プロジェクトAとBがローカルに変更されているとします。しかし、他の開発者もBを変え、プロジェクトをアーチファクトがホストされているリポジトリに展開しています。ローカルスナップショットとリモートスナップショットに関するMavenアップデートポリシースナップショット

ローカルBをローカルに変更している場合、ローカルBがリモートBより古い場合でも、プロジェクトAはリモートBではなくローカルBを使用しますか?したがって、基本的には、依存関係プロジェクトをローカルで変更した場合、その変更されたプロジェクトを持つプロジェクトを、リモートバージョンではなくローカルの変更バージョンを使用する依存関係にしたいと考えています。

どうすればいいですか?これを行うupdatePolicyはありますか?

答えて

1

Mavenは、スナップショットを作成中に、ローカルのPOMのタイムスタンプをリモートと比較します。あなたが値決してupdatePolicyを使用して制御することができます

は、Mavenは別のバージョンを取得しようとすることはありません。それはローカル

存在しない場合にのみ

<repositories> 
     <repository> 
      <id>exampleSnapshots</id> 
      <name>example Snapshots</name> 
      <url>http://example.org/maven2</url> 
      <layout>default</layout> 
      <snapshots> 
      <enabled>true</enabled> 
      <updatePolicy>never</updatePolicy> 
       ...... 
      </snapshots> 
     </repository> 
     </repositories> 

他のオプションを次のようにあなたはMavenのSettings.xmlでそれを設定する必要があることを行うだろうしているalwaysdaily(デフォルト)、Xは整数であるinterval:X(分単位で)。

maven Documentation

+0

でより多くの情報を探すしかし、私は私の地元のバージョンを更新していない場合は、その方法は、それが、この場合のリモートバージョンを取得すること、ありますか?ローカルのプロジェクトをローカルに変更した場合、ローカルバージョンを取得します。そうでない場合は、最新のリモートバージョンが必要です。 – Snickers3192

+0

Mavenのアップデートチェックは、POMのタイムスタンプに基づいて行われます。ローカルで(ローカルの変更なしで)ビルドするとPOMタイムスタンプが更新されるため、最新のものと見なされます – ravthiru

関連する問題