Maven Archiver在类路径中为清单添加奇怪的换行符

Maven Archiver在类路径中为清单添加奇怪的换行符,maven,classpath,manifest,Maven,Classpath,Manifest,根据java规范,jar的manifest.mf中的类路径行只能是一定数量的字节。然后插入换行符,新行以空白开始 使用Maven 3和Maven jar插件版本2.3.2,我的清单在类路径中出现了一些有趣的换行符,我想当部署到WAS 7中时,这可能会让我感到不安 只是想确保清单看起来是正确的(可能与字节长度不匹配,但您可以了解情况): 在第一行结束时,注意到第三项目的中间是如何中断的?看来那不是件好事。有没有办法纠正这个问题?我不相信“customClasspathLayout”选项会对我起作用

根据java规范,jar的manifest.mf中的类路径行只能是一定数量的字节。然后插入换行符,新行以空白开始

使用Maven 3和Maven jar插件版本2.3.2,我的清单在类路径中出现了一些有趣的换行符,我想当部署到WAS 7中时,这可能会让我感到不安

只是想确保清单看起来是正确的(可能与字节长度不匹配,但您可以了解情况):

在第一行结束时,注意到第三项目的中间是如何中断的?看来那不是件好事。有没有办法纠正这个问题?我不相信“customClasspathLayout”选项会对我起作用。

这符合我的要求。请注意,行的长度是72个字符,如果超过该长度,则意味着要在该点换行。

我挣扎了约8个小时。 Plexus archiver总是重新打包/重构清单文件,即使您指定了自定义清单文件。始终添加换行符(72字符限制) 没有办法改变这种行为 我找到了以下解决方法。我开始使用truezip maven插件更新生成的ear:

        <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>

org.codehaus.mojo
truezip maven插件
更换损坏的舱单
复制
包裹
src/main/resources/META-INF/MANIFEST.MF
${project.build.directory}/${project.build.finalName}.${project.packaging}/META-INF

谢谢,我只是想再核实一下。我没有发现任何具体的细节,当一个jar名称被一分为二的时候会发生什么,我想确保我遇到的问题不是来自于清单上的jar名称跨越多行,中间插入空格。链接似乎被破坏了。
        <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>