我用于 Jar 签名证书的证书颁发机构 - GlobalSign - 已切换为颁发基于令牌的代码签名证书。这些需要设置 jarsigner 的providerClass 和providerArg 选项。 Ant 的signjar 任务(我已检查Ant 1.10.1 的文档)不支持这些参数。鉴于此,我如何在 Ant 中自动执行此任务?谢谢大家!
我碰巧遇到了同样的问题(也是同一提供商;-) 我不得不求助于使用 Ant 中的任务,如下所示:
<exec executable="${jarsigner}">
<arg line="-keystore ${signkeyNew.keystore} -storetype ${signkeyNew.storetype} -storepass ${signkeyNew.storepass} -providerClass ${signkeyNew.providerClass} -providerArg ${signkeyNew.providerArg} -tsa ${signkey.tsaurl} ${build.bundle-jar} ${signkeyNew.alias}" />
</exec>
(“${xxx}”中提到的别名已被定义为值)
以下 ANT 构建脚本可帮助我使用存储在 Azure Key Vault 中的 Entrust 代码签名证书对 jar 进行签名 -
<signjar
tsaurl="${signjar.tsaurl}"
jar="${rel.dir}/${images.jar}"
storetype="${signjar.storetype}"
keystore="NONE"
storepass=""""
alias="${signjar.alias}">
<arg value="-J-Dazure.keyvault.uri=${azure.keyvault.uri}"/>
<arg value="-J-Dazure.keyvault.tenant-id=${azure.tenant.id}"/>
<arg value="-J-Dazure.keyvault.client-id=${azure.service.principal}"/>
<arg value="-J-Dazure.keyvault.client-secret=${azure.secret}"/>
</signjar>