使用maven构建时,jar文件被破坏

在构建war文件的同时,我将一组jar子从一个位置复制到战争中的文件夹中。 虽然文件确实被复制了,但是我认为它们被破坏了,因为在战争之外拍摄的jar的相同类文件打开了调试器,而在从war文件中取出后它没有打开。

这是我的战争pom.xml的一部分,我复制了jar子

 copy-jars process-resources  copy-resources   ${basedir}/target/${project.artifactId}-${buildNumber}/somefolder   SomeSourceDirectory true  **/**      

SomeSourceDirectory有一些jar和一些其他文件结果是:myWar / somefolder / a.jar但是当我在调试器中打开这个jar里面的类时…我在WinZip中得到错误

 Invalid compressed data to extract. Severe Error: Compressed data is invalid 

但是,当我在原始文件夹中查看时,即在战争之外,可以查看相同的类文件。 复制jar子时有错误吗? 谢谢。

删除true ,它会破坏jar文件。

此外,您可以继续使用maven过滤而不会损坏内部的jar(是的,我需要使用jar包装并使用过滤)

我们选择从过滤扩展中排除jar。

在父pom的pluginManagement部分中我们放置了这个配置

   org.apache.maven.plugins maven-resources-plugin 2.5  ${project.build.sourceEncoding}  jar pdf swf zip bz2 gz acp bin odt doc xls    

注意我们添加了jar扩展以及默认maven排除的文件类型(毕竟它是一个zip)。

除了避免存档损坏外,它还可以加快进程,因为它不必过滤大文件。

试试Maven Assembly Plugin 。 这是我最喜欢的插件,可以将自定义资源添加到* .war文件中。 另请参见预定义的描述符文件 。

我添加时遇到了类似的错误

         

到我在ANT的复制任务。 它在复制时损坏了jar文件。 我通过仅在目标文本文件上应用filter而不是在jar文件上解决了这个问题。