プロキシ自動スクリプトが設定されている環境でMavenを使用する方法

今日、プロキシ自動スクリプトが設定されている環境にMavenを導入した。
Mavenの静的なプロキシ設定はよくやるしその方法も広まっていると思うけど、自動スクリプトな環境でも同じように設定できることが分かった。

ここを参考にした。
Get a Clue: Maven error -Proxy setting

手順は以下の通り。

まずはプロキシ自動スクリプトをダウンロードする。
単純にブラウザに自動スクリプトのURL打ち込めば可能。

http://…/proxy.pac

次にダウンロードしたファイルを開く。
たぶんこんな内容が書いてあるハズ。

function FindProxyForURL(url, host)
{
    if(isInNet(myIpAddress(),"172.16.0.0" ,"255.255.0.0")	
    || isInNet(myIpAddress(),"192.168.7.0","255.255.255.0")
    || isInNet(myIpAddress(),"192.168.9.0","255.255.255.0")
    )
    {
        if(isPlainHostName(host)) 
            return "DIRECT";
        if(dnsDomainIs(host,".internal.osaka.jp")) 
            return "DIRECT";
        if(dnsDomainIs(host,".osaka.jp"))      
            return "PROXY www-in.proxy.osaka.jp:8080;
    }

    return "DIRECT";
}

ここで

return "PROXY www-in.proxy.osaka.jp:8080;

に注目。
これが実際のProxyの情報となっている(ことが多い)。

これを元にsettings.xmlを編集する。

    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>www-in.proxy.osaka.jp</host>
      <port>8080</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

これでMavenが使用出来るようになる。

仕組みとしては、静的なプロキシ設定となんら変わらなかった。
自動スクリプトを解析して静的なプロキシを見つけなさい、ということ。
なるほど勉強になった。


でも実は今日はこれだけではダメだった。

そもそも該当プロキシでは認証が必要な設定となっていたため、ログインしているドメインの「ユーザ/パスワード」を設定したんだが・・・認証が通らなかった。
そこはID連携はしておらず、任意のユーザをみんなで使い回すような設定になっているんだろうか???
SVNとかだとみんなで使い回すために参照用のユーザを作成したりするし、そのイメージ?


とりあえずどうやればいいか分からないけど今日はここまで。