Maven 3.1.1を使用しています。私のプロジェクトの1つで、別のプロジェクトを参照しています…
<dependencies>
<dependency>
<groupId>org.mainco.subco</groupId>
<artifactId>myprojectA</artifactId>
<version>${project.version}</version>
</dependency>
上記は、他のいくつかのプロジェクトに依存しています。ただし、「mvn clean install」を実行すると、Mavenはローカルリポジトリにあるものだけを使用するのではなく、これらのアーティファクトをダウンロードしようとします。ローカルリポジトリに存在しないものだけをダウンロードするようにするにはどうすればよいですか?これが私が見ているものの出力です…
davea$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building subco admin Module 57.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://download.Java.net/maven/2/org/mainco/subco/myprojectA/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/subco/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/projectB/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/projectC/57.0.0-SNAPSHOT/maven-metadata.xml
[INFO]
$USER_HOME/.m2/settings.xml
ファイルでリポジトリを設定することにより、更新頻度を制御できます。具体的には、updatePolicy
を、更新頻度の少ない値に変更します。
このStackoverflowの回答 に詳細があります。
オフラインフラグを使用すると、ローカルリポジトリのライブラリが使用されます。
mvn clean install -o
ローカルにインストールされたもののスナップショットではなく、いくつかのjarを更新する場合は、 -nsu
(--no-snapshot-updates
)フラグを使用する必要があります Mavenがメインリポジトリから最新のスナップショットを取得しないようにします。 -o
を使用すると、他のアップグレードや(多くの場合)重要なMaven jarをリモートリポジトリから取得できなくなります。
私の経験では、mavenが特定のサーバーからファイルをダウンロードする必要があることを「決定」した後は、そのいずれも機能しません。
UpdatePolicyを別の提案として設定しますが、成功するには、jarがあるローカルリポジトリ内のフォルダに移動し、「_ maven.repositories」という名前のファイルを削除する必要があります。 「.lastUpdated」で終わるすべてのファイルも削除します。 Eclipseプラグインを使用している場合も「m2e-lastUpdated.properties」。