您的位置:首页 > 编程语言 > Java开发

<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"
}

每个人的具体情况可能不一样,不过我这么做就可以解决问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐