在一个项目上尝试 jwrapper,它失败了,如下所示:
**********************************
* BUILD FAILED *
**********************************
** Reason: (see stacktrace below)
java.lang.IllegalArgumentException: Non-empty directory: META-INF/services
at com.sun.java.util.jar.pack.PackerImpl$DoPack.readFile(PackerImpl.java:546)
at com.sun.java.util.jar.pack.PackerImpl$DoPack.run(PackerImpl.java:492)
at com.sun.java.util.jar.pack.PackerImpl.pack(PackerImpl.java:99)
at jwrapper.pack200.Pack200Compressor.compressFileToOutputStream(Pack200Compressor.java:133)
at jwrapper.archive.Archive.addFileToStream(Archive.java:411)
应用程序 jar 有这个:
1 12-03-2014 16:45 META-INF/services/
13 12-03-2014 16:45 META-INF/services/java.sql.Driver
问题可能是什么?
如果单独运行 pack200,则会引发相同的错误。我不知道 META-INF/服务有什么特别之处。许多其他目录的处理都没有错误。
更新:
刚刚发现 unzip 有一个“详细”标志,它揭示了这种奇怪:
0 Stored 0 0% 02-22-2013 13:53 00000000 META-INF/maven/net.mikera/mathz/
1 Defl:N 3 -200% 12-03-2014 16:45 32d70693 META-INF/services/
除 META-INF/services/ 外,所有目录都标记为“已存储”。但是我不知道为什么或如何。