ビルドはすべての依存関係をダウンロードした後、JAR への署名中にさらに別のネットワーク要求を必要とすることがあります。その要求は、Ant の SignJar タスクが起動する jarsigner プロセスを経由してタイムスタンプ機関へ送られます。

SignJar は TSA 固有のプロキシ属性を提供します。既存の署名設定の中では、関連する形は次のとおりです。

<signjar jar="${jar.to.sign}"
         alias="${signing.alias}"
         keystore="${signing.keystore}"
         storepass="${signing.storepass}"
         tsaurl="https://tsa.example/"
         tsaproxyhost="proxy.example"
         tsaproxyport="8080" />

値は、ビルドの承認済み署名設定と TSA のプレースホルダーです。Ant はバージョン 1.9.5 以降、tsaproxyhost と tsaproxyport を文書化しています。

Ant 1.10.15 では、SignJar が TSA URL のスキームを検査し、これらの属性を -J-D で jarsigner に渡される対応する HTTP または HTTPS プロキシプロパティに変換します。プロキシホスト自体はホスト名で、ポートは別に指定します。承認済みの TSA が公開されて到達可能で、署名プロセスが認証なしの公開仲介者を使用できる場合、HTTP プロキシリストのエントリでこれら 2 つの TSA プロキシ属性を埋められます。

この子プロセスの境界は Maven antrun ビルドでも重要です。Maven のリポジトリプロキシ設定や Ant を実行する JVM のプロパティは、別に起動された jarsigner が経路を受け取った証拠にはなりません。そのプロセスを作るタスクを設定してください。

関連記事