星期三, 一月 21, 2015

how ant task read manifest.mf from another jar file.

经常需要在打包可执行jar包的时候,将众多jar打包成一个jar包,
但是只有一个主项目的MANIFEST.MF是需要的。其他的jar包的
MANIFEST.MF都可以忽略掉。
其实很简单的方法:
        <zip destfile="final.jar">
            <zipfileset src="store/temp_final.jar"
            excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA,META-INF/MANIFEST.MF"/>
这里将其他jar包的MANIFEST.MF给去掉了。
            <zipfileset src="dist/project.jar" includes="META-INF/**"/>           
这里将project.jar里的MENIFEST.MF放到最终的jar包里
        </zip>
zipfieset 的prefix属性是用来指明最终jar包里的目录结构,这提供了更加灵活的方式。
不过这里不需要通过prefix来指明最终的jar包目录结构,如果是通过引入一个文件作为MANIFEST.MF,prefix属性就是经常需要的了。
不过一个文件就是使用<fileset >任务来引入了。