Gradle签名插件问题:生成未签名Jar及.asc文件
问题分析与解决方案
核心原因
Gradle Signing插件的sign jar任务默认行为是生成对应Jar文件的ASCII签名文件(.asc),而非修改原Jar文件本身。你看到未签名的Jar和.asc文件是完全正常的——签名是作为附加文件存在的,验证时需要同时使用Jar和.asc文件。
关键配置检查
确保~/.gradle/gradle.properties中的密钥信息配置正确,需要包含以下三个属性:
# 8位十六进制密钥ID(可通过gpg --list-keys查看) signing.keyId=XXXXXXX # 私钥环文件路径,GPG 1.x用~/.gnupg/secring.gpg,GPG 2.x通常用~/.gnupg/pubring.kbx signing.secretKeyRingFile=~/.gnupg/secring.gpg # 私钥保护密码 signing.password=your-key-password
完整可用配置示例
build.gradle(Groovy)
plugins { id 'java' id 'signing' } signing { // 签名Jar任务的产物 sign jar } // 可选:将签名任务绑定到assemble任务,执行assemble时自动触发签名 tasks.assemble.dependsOn tasks.signJar
验证签名有效性
执行签名后,可通过GPG命令验证签名是否有效:
gpg --verify your-project.jar.asc your-project.jar
如果输出中包含"Good signature from"字样,说明签名成功。
内容的提问来源于stack exchange,提问作者christosonjava
相关产品推荐
相关产品推荐

