根据java规范,manifest.mf中jar的classpath行只能是一定数量的字节。之后插入换行符,新行以空格开头。
使用Maven 3和maven-jar-plugin版本2.3.2我的清单最终在类路径中有一些有趣的换行符,我认为在部署到WAS 7时可能会破坏我的EAR。
只是想确保清单可以看起来像那样(可能不匹配字节长度但是你得到了图片):
Class-Path: log4j-1.2.16.jar projectthatislong-0.0.1-SNAPSHOT.jar projectt
hatislong-0.0.1-SNAPSHOT.jar
注意它在第一行末尾的第三个项目中间是如何中断的?这似乎不是一件好事。有没有办法纠正这个?我不相信“customClasspathLayout”选项对我有效。
答案 0 :(得分:15)
这与specification for Java manifest files一致。请注意,行长度为72个字符,如果超过,则表示在此处换行。
答案 1 :(得分:0)
我努力奋斗了大约8个小时。 即使您指定自定义文件,Plexus存档器也始终会重新打包/重组您的清单文件。总是添加换行符(限制为72个字符) 无法更改此行为 plexus archiver code 我发现以下解决方法。我开始使用truezip-maven-plugin更新生成的耳朵:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>truezip-maven-plugin</artifactId>
<executions>
<execution>
<id>replace-broken-manifest</id>
<goals>
<goal>copy</goal>
</goals>
<phase>package</phase>
<configuration>
<files>
<file>
<source>src/main/resources/META-INF/MANIFEST.MF</source>
<outputDirectory>${project.build.directory}/${project.build.finalName}.${project.packaging}/META-INF</outputDirectory>
</file>
</files>
</configuration>
</execution>
</executions>
</plugin>