Gradle生成独立运行包时出现Can’t Expand ZIP的问题

8 9月

有时候我们需要打包一个可独立运行的jar文件并分发出去,特别是桌面图形化程序。

Gradle要打这种包是很方便的,网上有很多例子,比如以下这个

又或者这样

大部分情况都是可以直接这样解决的,但是我最近遇到一个问题,一直提示Can’t Expand file。

来回头看看Gradle中的这段配置是怎样工作的。configurations.compile.collect包含了编译的所有依赖,然后对于其中的所有依赖,如果是目录就取出文件继续处理,如果是文件就解压,解压以后的东西会合并到最后的jar文件中。

有时候configurations.compile.collect也会替换成configurations.runtime.collect,不过这个不是引起问题的原因。

如果真的是jar,那么应该是可以解压的,但是Gradle中的依赖并没有强制指定为jar,它可以是pom,text等等各种文件。

我这里遇到的问题是依赖中有一个pom文件,自然是不能解压的,那么处理办法就很简单的。如果这种文件很多,那么需要在zipTree前做一个检查,不过我现在的情况很简单,只有一个pom文件,那么直接filter就行了

 

发表评论

电子邮件地址不会被公开。