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

时间:2011-09-13 12:59:48

标签: maven classpath manifest

根据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”选项对我有效。

2 个答案:

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