私はかなり大きなMavenプロジェクトに取り組んでいます。おそらく70個ほどの個別のアーティファクトがあり、それらは大まかに共有コードの2つのライブラリと、それらを使用する10個のアプリケーションに分割されています。これらの項目はすべて名前空間にありますcom.mycompany.*
。
ほとんどの場合、スナップショットビルドに対して実行しています。したがって、アプリケーションのフルビルドを行うには、まずライブラリプロジェクトをビルドして、ローカルリポジトリにインストールするようにします(たとえば、mycompany-libname-2.4-SNAPSHOT.jar
)。
問題は、次にアプリケーションをビルドするときです。何らかの理由で、Mavenは主要な2つのパブリックリポジトリ(maven-net-repoおよびjava-net-repo)をチェックして、すべてのmycompany-*-SNAPSHOT.jar
アーティファクトの更新を確認したいと考えています。もちろん、それらはそこにはなく、最終的にすべてがローカルリポジトリにビルドしたバージョンに解決されますが、Mavenはこれをやめてほしいのです。これらのリポジトリに存在しないものがないかどうかを常にチェックし、(b)ビルドプロセスに不要で迷惑なネットワーク遅延を追加します。
私はこれを回避するためにほとんどの場合オフラインモードでMavenを実行することにしましたが、パブリックライブラリへの依存関係が更新されることがあるので、これは理想的ではありません。だから私が探しているのは、特定の基準を満たすアーティファクトの指定されたリポジトリからの更新をMavenがチェックしないようにするソリューションです-この場合、MavenがSNAPSHOTバージョンまたは含まれていたアーティファクトのいずれかを無視してくれると幸いですcom.mycompany
名前空間。