<Gradle> java.lang.SecurityException的解决办法

1 篇文章 1 订阅

今天用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"
    }

每个人的具体情况可能不一样,不过我这么做就可以解决问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值