これを行う最もクリーンな方法は、ライブラリを中央にアップロードすることです (または、プロジェクトがオープンソースでない場合は、プロジェクトがホストされている maven リポジトリに失敗します)。
元のプロジェクトが望まない場合にアーティファクトをアップロードする方法を詳しく説明した、サードパーティのアーティファクトをセントラルにアップロードするためのガイドがあります。
独自の groupId の下にアーティファクトを展開する可能性もあります... 最後の手段、または公式の方法が遅すぎると思われる場合の最初の手段です。
良きオープン ソースの市民になりたい場合は、そのようなものを中央にアップロードして、他の人が恩恵を受けるようにしてください。
プロジェクト内リポジトリのようなハックは、企業のリポジトリ マネージャーの背後に住んでいて<mirrorOf>*</mirrorOf>
、~/.m2/settings.xml
(あるべき姿で) 持っている人には機能しません。
スコープのようなハックは、人々があなたのプロジェクトを推移的な依存関係としてsystem
操作しようとすると、終わりのない苦痛の世界を引き起こします.なぜなら、あなたのプロジェクトをリアクターからではなくローカルリポジトリから解決するときに何が評価されると思いますか? サードパーティのjarファイルを置いた場所ではないことを確認してください。${basedir}
~/.m2/repository/your-groupId/your-artifactId/your-version
スコープ ハックは、最終的なアーティファクトを構築している場合にのみ機能し、そのsystem
場合でも、意図しない副作用が発生する可能性があります (JAR マニフェストに焼き付けられるクラスパスのように...マシンのディスク上のパスになります...そうではありませんユーザーがデプロイするパス)
解決策は次の 3 つだけです。
- リモートリポジトリにデプロイします (優先度は中央に移動します)
- ローカルリポジトリにインストールします(エンドユーザーにとっては苦痛です)
- 偽のモジュール ソリューション (JAR モジュールを偽造し、「ビルドされた」jar をサブインしたい jar に置き換えて、モジュールをビルドせずにビルドされたアーティファクトにする...これはオプション 1 になります。または2ですが、「プロジェクトリポジトリ内」よりも害の少ないソリューションです)