<Gradle> java.lang.SecurityException的解决办法
2014-07-28 11:44
639 查看
今天用Gradle跑一个项目出了个错误,以前都是用ant跑的
症状如下:Build的时候很正常,但是Run的时候提示
Exception in thread "main" java.lang.SecurityException: Invalid
signature file digest for Manifest main attributes
初看起来是签名不符合,猜想可能是gradle和ant的包不一样
于是搜索了一下症状:
Stackoveflow : invalid signature
iText question
看完了上面的讨论我理解是 因为Gradle把所有dependency都打包到了一起,所以不同版本的包可能会冲突
然后Justin来看了一下,立刻指出 其实这个原因是因为签名冲突,一些SF、RSA文件重复了,而我们的项目其实不需要用到这些文件
Maven打包问题
跟上面的这个问题基本上道理是一样的。
于是我去改了一下项目目录下的gradle.build文件
exclude dependency
用这位仁兄的做法,就在runtime.collect这句话后面加三句exclude就行了
from {configurations.runtime.collect {zipTree(it)}} //
{
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
}
每个人的具体情况可能不一样,不过我这么做就可以解决问题了。
症状如下:Build的时候很正常,但是Run的时候提示
Exception in thread "main" java.lang.SecurityException: Invalid
signature file digest for Manifest main attributes
初看起来是签名不符合,猜想可能是gradle和ant的包不一样
于是搜索了一下症状:
Stackoveflow : invalid signature
iText question
看完了上面的讨论我理解是 因为Gradle把所有dependency都打包到了一起,所以不同版本的包可能会冲突
然后Justin来看了一下,立刻指出 其实这个原因是因为签名冲突,一些SF、RSA文件重复了,而我们的项目其实不需要用到这些文件
Maven打包问题
跟上面的这个问题基本上道理是一样的。
于是我去改了一下项目目录下的gradle.build文件
exclude dependency
用这位仁兄的做法,就在runtime.collect这句话后面加三句exclude就行了
from {configurations.runtime.collect {zipTree(it)}} //
{
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
}
每个人的具体情况可能不一样,不过我这么做就可以解决问题了。
相关文章推荐
- Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V解决办法
- java.lang.SecurityException: META-INF/XX.SF has invalid digest 解决办法
- jar包运行出现java.lang.SecurityException: Invalid signature file digest for Manifest main attributes的解决办法
- Android问题分享:DownloadManager基本用法及发生java.lang.SecurityException异常的解决办法
- java.lang.SecurityException: Permission Denial:错误解决办法
- java.lang.SecurityException解决办法
- ContentProvier使用时:java.lang.SecurityException: Permission Denial:XXX解决办法
- Android:java.lang.SecurityException: Permission Denial解决办法
- DWR 报错:Error: java.lang.SecurityException, Session Error 和 Allocate exception for servlet 问题的解决办法
- [Domino]“java.lang.ClassCastException:lotus.domino.cso.Item”异常解决办法
- org.apache.jasper.JasperException: java.lang.NullPointerException 解决办法
- TOMCAT6.0安装probe.1.7b出现java.lang.SecurityException错误的解决
- 启动MyEclipse 出现java.lang.RuntimeException: No application id has been found 解决办法
- tomcat 6 发布应用后,访问jsp报错org.apache.jasper.JasperException: java.lang.NullPointerException的解决办法。
- java.lang.NoSuchMethodException 解决办法
- java.lang.NoSuchMethodException 解决办法,莫名奇妙在其他地方可以
- 在Domino中使用LOG4J遇到java.security.AccessControlException的解决办法
- java.lang.NoSuchMethodException 解决办法
- java.lang.Exception: Socket bind failed: [730048]问题解决办法
- java.lang.IllegalArgumentException: 请设置InstanceName的解决办法