如何在Gradle中对jar文件进行签名
我需要在jar文件上签名。我使用插件“签名”并添加块签名,如下所示:如何在Gradle中对jar文件进行签名,gradle,signing,jarsigner,Gradle,Signing,Jarsigner,我需要在jar文件上签名。我使用插件“签名”并添加块签名,如下所示: apply plugin: 'signing' signing { required { gradle.taskGraph.hasTask("makeService") } sign configurations.archives } 最后,我可以添加PGP密钥并对jar进行签名,但它是在jar文件外部用.asc(testJar.jar.asc)进行签名的 但是我在maven中这样做了,它对所有类信息进行签名,并将签名文件
apply plugin: 'signing'
signing {
required { gradle.taskGraph.hasTask("makeService") }
sign configurations.archives
}
最后,我可以添加PGP密钥并对jar进行签名,但它是在jar文件外部用.asc(testJar.jar.asc)进行签名的
但是我在maven中这样做了,它对所有类信息进行签名,并将签名文件放在meta inf目录中
在格拉德尔有这样的签名吗
请帮助我尝试过谷歌搜索,论坛无法获得任何信息。ASC用于数字签名存档以供发布 但是你需要一个签名的罐子 首先,在控制台中执行此操作: 1) 创建私钥
keytool -genkey -alias test_app_alias -validity 3650 -keystore test_app_sign.jks
jarsigner -keystore test_app_sign.jks -storepass password123 -keypass password123 build/libs/<name>.jar test_app_alias
使用password123作为密码
2) 使用您的私钥对JAR进行签名
keytool -genkey -alias test_app_alias -validity 3650 -keystore test_app_sign.jks
jarsigner -keystore test_app_sign.jks -storepass password123 -keypass password123 build/libs/<name>.jar test_app_alias
jarsigner-keystore test\u app\u sign.jks-storepass password123-keypass password123 build/libs/.jar test\u app\u别名
3) 通过查看结果文件,检查所有操作是否正确完成。或者运行命令
jarsigner -verify build/libs/<name>.jar
jarsigner-验证build/libs/.jar
在build.gradle中添加代码。例如:
jar << {
def passwd = "password123"
def app_alias = "test_app_alias"
def jks_file = "test_app_sign.jks"
def exec_line = "jarsigner -keystore " + jks_file + " -storepass " +
passwd + " -keypass "+ passwd + " " + jar.archivePath + " " + app_alias
print exec_line
exec_line.execute()
}
jar
这对我来说很有用。真的没有声明性的方法来做这件事吗?别忘了,如果签名失败,jar文件必须删除,否则在下一次构建运行时,Gradle肯定会认为它是最新的,不会再次签名。如果你想在每个构建中都对jar进行签名,请在最后添加build.dependsOn signJar
。