Ant の get タスクは、Ant を実行している JVM のネットワーク設定を使用します。ダウンロードの前に setproxy でプロキシを設定できます:

<target name="download">
  <setproxy proxyhost="proxy.example.net"
            proxyport="8080"
            nonproxyhosts="localhost|127.*|*.internal.example.net"/>
  <get src="https://downloads.example.net/tool.zip"
       dest="tool.zip"/>
</target>

名前とポートは例です。公開プロキシの使用が許可された公開アーティファクトの要求では、HTTP プロキシ一覧から HTTP エンドポイントを選びます。バイパス一覧はカンマではなく縦棒を使います。実際に直接接続すべき宛先だけを含めてください。外部プロキシ経由にした内部ダウンロードは、プロキシが正しく動作していても失敗することがあります。

順序が重要です。プロキシのタスクは、同じターゲットでも前提ターゲットでも、get の操作より前に置きます。ダウンロード開始後に設定しても、その接続は変わりません。

ログインは 2 種類あり得ます。proxyuser と proxypassword 属性は setproxy で中継サーバーに関するものです。username と password 属性は get でダウンロードサーバーに関するものです。プロキシのアカウントを get に渡しても、プロキシ認証にはなりません。認証の対応と制約は JDK とプロキシが要求する方式にも依存します。

この設定は JVM 全体に及びます。そのネットワーク経路を使う Ant タスクには適していますが、ビルドが起動するすべての外部プログラムを設定するわけではありません。同じ Ant プロセス内の後続のネットワークタスクにも影響し得ます。サイト固有のエンドポイントと秘密情報は、ある開発者のアカウントを共有ターゲットに埋め込むのではなく、ビルドのローカル設定に置いてください。

オペレーティングシステムが目的の経路をすでに提供している場合、Ant は対応する Java ランタイムでの OS 検出用に -autoproxy も文書化しています。これはルーティング設定の別の供給元です。明示的なエンドポイントが必要なビルドでは、上記のタスクによって選択した経路とそのタイミングが可視化されます。

関連記事