1. ホーム
  2. java

[解決済み] Maven-central-repoから特定のグループの成果物の更新をチェックしようとするのを止めるにはどうすればよいですか?

2022-06-05 03:48:55

質問

私はかなり大きな Maven プロジェクトで作業しています。 おそらく約 70 ほどの個々の成果物があり、それらは共有コードの 2 つのライブラリと、それらを使用する 10 ほどのアプリケーションに大別されます。 これらのアイテムはすべて、ネームスペースの com.mycompany.* .

ほとんどの場合、私たちはスナップショットビルドに対して実行しています。 ですから、アプリケーションの完全なビルドを行うために、私は最初にライブラリプロジェクトをビルドして、それらが私のローカルリポジトリにインストールされるようにするかもしれません(例えば。 mycompany-libname-2.4-SNAPSHOT.jar ).

問題は、私がアプリケーションをビルドしに行くときです。 何らかの理由で、Maven は主要な 2 つのパブリック リポジトリ (maven-net-repo と java-net-repo) をチェックし、その中のすべての mycompany-*-SNAPSHOT.jar アーティファクトのすべての更新を確認しようとします。 もちろん、それらはそこでは見つからず、最終的にすべてローカル リポジトリにビルドしたばかりのバージョンに解決されますが、(a) 決してそこにないもののためにこれらのリポジトリを常にチェックするのは悪い net.citizen のように感じられるので、Maven にこれをやめてもらいたいと思いますし、 (b) それは私の構築プロセスに不必要で迷惑なネットワーク遅延を追加することになります。

私はこれを回避するために、ほとんどの場合オフライン モードで maven を実行するようにしましたが、時折公開ライブラリへの依存関係が更新されるため、それは理想的ではありません。 この場合、私は、Maven が SNAPSHOT バージョンまたは com.mycompany ネームスペースにあるアーティファクトを無視します。

どのように解決するのですか?

updatePolicy タグは私の場合、機能しませんでした。しかし、Rich Seller は、スナップショットはとにかく無効にすべきだと述べていたので、さらに調べて、私が settings.xml に追加した追加のリポジトリが実際に問題を引き起こしていることに気づきました。私の settings.xml のこのリポジトリにスナップショット セクションを追加することで、トリックが実行されました!

<repository>
    <id>jboss</id>
    <name>JBoss Repository</name>
    <url>http://repository.jboss.com/maven2</url>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>