Mavenリポジトリへproxy経由でアクセスする
Proxy通さないとインターネット接続できない環境。
Mavenでリポジトリアクセスするための設定メモ。
概略
対応方法
settings.xml
にproxy設定を書いてやれば解決する。
設定例
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts> </proxy> </proxies> ... </settings>
設定例は公式*1のやつそのまま
設定値
項目 | どんな値? |
---|---|
id | 被らないように適当な値を。 |
active | 有効にするなら当然true …だけど一度に一つのproxyしか有効にならんと書いてある。httpとhttps両方やりたい場合は面倒になるらしい。*2 |
protocol | 繋ぎたいproxyに合わせて。http やらhttps やら。 |
host | 同上。ローカルホストproxyなら127.0.0.1 。 |
port | 同上。8080 あたりになるんじゃない? |
username/password | 認証情報。パスワード直書きは気になるけどさすがにどうしようもないか。 |
nonProxyHosts | proxyしたくないhostがある場合に設定。 Webページの説明ではデリミタはproxyサーバ依存とあるけど、xsdに delimited by | って書いてあるのがイマイチ。 |
設定失敗してリポジトリアクセスできない場合のエラー
自環境ではMavenプロジェクトセットアップ時にこんなエラーが出た。
Failure to transfer org.apache.maven.plugins・・・
Plugin execution not covered by lifecycle configuration
当然動作環境によってエラー内容は変わるはず。
安易にエラーメッセージでGoogle先生に聞くと「リポジトリアクセスはできているがその先が問題だ」って言うページが多かったけど、リポジトリアクセス出来ない場合でも出ることはあるようだ。
そもそも最初の設定が終わってるかは一度ちゃんと見なおせという戒め。