settings.xml の Maven プロキシ除外設定
縦棒で区切る nonProxyHosts 形式を使い、内部ホストを除外した Maven フォワードプロキシを設定します。
シェルの NO_PROXY 変数からコピーした除外指定は、Maven でそのまま有効とは限りません。Maven の nonProxyHosts リストは、環境変数で一般的なカンマ区切りではなく、項目の間に縦棒を使います。
対象のユーザー設定にあるプロキシ項目は、次のようになります。
<settings>
<proxies>
<proxy>
<id>outbound-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>203.0.113.10</host>
<port>8080</port>
<nonProxyHosts>localhost|*.example.internal</nonProxyHosts>
</proxy>
</proxies>
</settings>
これは proxies セクション周辺の設定例です。関係のない mirrors、servers、profiles を置き換えず、既存の設定ファイルに統合してください。実際のプロキシアドレスを使います。リポジトリへのリクエストで公開 HTTP プロキシが許可されている場合は、HTTP プロキシ一覧からホストとポートの候補を選べます。
リポジトリのホストに合わせる
Maven が実際に接続するホスト名に除外を適用します。内部リポジトリの URL と公開ダウンロードホスト名では、別の経路が必要になることがあります。パスを含むリポジトリ全体の URL を、ホストパターン用の項目に入れないでください。
ワイルドカードは使えますが、1 つの失敗を消すためだけに広すぎるパターンを使わないでください。変更後は、対象の内部名と公開リポジトリを分けて確認します。
実際に使われている設定を見つける
Maven はグローバル設定とユーザー設定を組み合わせられ、起動方法によって別の設定ファイルを選べます。IDE がターミナルとは別の Maven インストールや設定を使うこともあります。失敗している起動方法が読まないファイルを編集しても、経路は変わりません。
プロキシの有効フラグも確認します。無効な項目でホストとポートが正しくても、Maven が選ぶとは限りません。
2 つのサーバーを分ける
プロキシの認証情報は、そのサービスが要求する場合はプロキシ項目に置きます。非公開アーティファクトリポジトリの認証情報は、該当する server 設定に置きます。リポジトリのトークンを渡しても、プロキシ認証のチャレンジには答えられません。
それでもリクエストが失敗する場合は、選択されたリポジトリ URL、応答または接続エラー、実効設定の出所を記録します。まず、リクエストがプロキシ経由か直接接続かを確認してください。リストの構文とエンドポイントを同時に変えると、結果を解釈しにくくなります。