对于通常的MANIFEST.MF文gQ一般格式是Q?br />
Class-Path: lib/a.jar lib/b.jar lib/c.jar lib/d.jar lib/e.jar lib/f.jar
在一行之内将所有的jar包\径写上,I格分隔卛_?br />
但是对于一些大型的目Q因Z赖包众多Q比如大?0个,那么如果q写在一行内Q就会出C个长度惊人的行。程序运行倒不会有M问题Q但是对于版本控制就很不友好Q如增加或者减一个依赖包Q这行就会被改写。以后compare不同版本Ӟ只能知道q行被修改了无法直接知道是做了什么修改,必须通过其他方式才能Ҏ出来?br />
同样的问题发生在code mergeӞ如果两个分支都修改了q个文gQ就必须通过手工来进行mergeQ而且要对照出来彼此到底改了什么,很困难而且Ҏ出错?br />
因此一个改q就是将q个文g中的依赖按照一行一个依赖的方式重写Q这样以后修Ҏ只会修改改依赖所在的行,很容易就Ҏ出来具体做了哪些感动Qcode merge时版本控制Y件一般也很容易直接自动merge成功?br />
修改后的文gcM如下Q?br />
Class-Path: lib/a.jar
lib/b.jar
lib/c.jar
lib/d.jar
lib/e.jar
lib/f.jar
但是在实际操作时发生了意料之外的问题Q会出现异常或者类无法扑ֈQ经查发现问题出现在MANIFEST.MF的格式上QMANIFEST.MF对于分行和空格是有特D要求的Q?br />
1. 每行的最后一个jar的名U后不容许有I格
? lib/b.jar"在b.jar后必d车结束本行,不能有空|一个都不能
2. 每行的开头必L不少?个空?br />
? lib/b.jar"在b.jar前必L不下两个I格
以上两个条g有一个不满都会出现问题Q有点古怪?br />

]]>