用ant ,自动生成 .MF文件、打包。
新建build.xml文件,按工程结构配置目录。具体如下代码
打开build.xml文件,右键run as 运行打包。
build.xml文件内容:
<project name="ant test" default="compile" basedir=".">
<property name="src" value="${basedir}/src" />
<property name="bin" value="${basedir}/bin" />
<property name="lib" value="${basedir}/lib/lib" />
<property name="jarname" value="Mytest.jar" />
<property name="mainClass" value="shell.SFTPUtils" />
<!-- 编译所需要的jar包路径 -->
<path id="compile.classpath" >
<fileset dir="${lib}" includes="*.jar" />
</path>
<echo message="编译所需要的jar包路径:${lib}"/>
<target name="compile">
<mkdir dir="${bin}" />
<javac srcdir="${src}" destdir="${bin}">
<classpath refid="compile.classpath" /> <!-- 引用编译所需要的jar包路径 -->
</javac>
</target>
<target name="clean">
<delete dir="${bin}" />
</target>
<!-- 拼接 mf Class-Path路径-->
<pathconvert property="mf.classpath" pathsep=" ">
<mapper>
<chainedmapper>
<!-- 去掉目录信息,jar包文件只留文件名-->
<flattenmapper />
<!-- add lib/ prefix -->
<globmapper from="*" to="lib/*" />
</chainedmapper>
</mapper>
<path refid="compile.classpath" />
</pathconvert>
<!-- 生产 mf 文件-->
<manifest file="${basedir}/MANIFEST.MF">
<attribute name="Built-By" value="EDATeam" />
<attribute name="Main-Class" value="${mainClass}" />
<attribute name="Class-Path" value="${mf.classpath}" />
</manifest>
<!-- 打包-->
<target name="jar" depends="compile">
<delete file="${basedir}/${jarname}" />
<jar destfile="${basedir}/${jarname}" basedir="${bin}" manifest="${basedir}/MANIFEST.MF" includes="**/*" />
</target>
</project>