在构建war文件时,我将一组jars从一个位置复制到war中的一个文件夹。虽然文件确实被复制了,但是我认为它们被破坏了,因为当从war外部获取时,jar的相同类文件会使用调试器打开,而从war文件获取之后却不会打开。
这是我的war pom.xml的一部分,我在其中复制jars
<execution>
<id>copy-jars</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/${project.artifactId}-${buildNumber}/somefolder</outputDirectory>
<resources>
<resource>
<directory>SomeSourceDirectory</directory>
<filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
SomeSourceDirectory有一些jar和其他一些文件,结果是:myWar/某个文件夹/a.jar,但是当我在调试器中打开这个jar中的类时,我在WinZip中得到错误
Invalid compressed data to extract.
Severe Error: Compressed data is invalid
然而,当我在原始文件夹中(即war之外)查看时,可以看到相同的类文件。那么在复制jars的时候有没有出错呢?谢谢。
发布于 2012-05-29 20:25:34
删除<filtering>true</filtering>
,它会损坏jar文件。
发布于 2013-04-19 00:50:30
此外,您还可以继续受益于使用maven过滤,而不会破坏内部的jars。
我们选择从过滤的扩展中排除jar。
在父pom的pluginManagement部分中,我们将此配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
<nonFilteredFileExtension>zip</nonFilteredFileExtension>
<nonFilteredFileExtension>bz2</nonFilteredFileExtension>
<nonFilteredFileExtension>gz</nonFilteredFileExtension>
<nonFilteredFileExtension>acp</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
<nonFilteredFileExtension>odt</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
请注意,我们添加了jar扩展名以及默认的maven排除的文件类型(毕竟它是一个压缩文件)。
除了避免损坏存档外,它还加快了进程,因为它不必过滤大文件。
发布于 2012-05-29 20:36:25
试试Maven Assembly Plugin。这是我最喜欢的插件,可以将自定义资源添加到*.war文件中。另请参见Pre-defined Descriptor Files。
https://stackoverflow.com/questions/10797831
复制相似问题