一个完整的打包jar的ant文件


<?xml version="1.0"?>
<project default="publish" basedir=".">

<property name="jar.name" value="posclient.jar" />
<!-- base directory for distribution target -->
<property name="dist.home" value="dist" />
<!-- base directory for compilation targets -->
<property name="build.home" value="target" />
<!-- The base directory for all libraries (jar) files -->
<property name="lib.home" value="lib" />
<property name="publishdir" value="d:/posclient" />
<property name="mainclass" value="datasync.win.MainWin" />

<path id="project.class.path">
<fileset dir="${lib.home}">
<include name="*.jar"/>
</fileset>
</path>


<target name="clean" >
<delete dir="${build.home}"/>
<delete dir="${dist.home}"/>
<delete dir="${publishdir}/*"/>
</target>

<target name="compile" depends="clean">
<mkdir dir="${build.home}"/>
<mkdir dir="${dist.home}"/>
<mkdir dir="${publishdir}"/>
<javac srcdir="src" destdir="${build.home}">
<classpath refid="project.class.path" />
</javac>
<copy todir="${build.home}" >
<fileset dir="src" >
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>


<target name="jar" depends="compile" description="Create jar and MANIFEST.MF">
<!-- create a property containing all .jar files, prefix lib/, and seperated with a space -->
<pathconvert property="libs.project" pathsep=" ">
<mapper>
<chainedmapper>
<!-- remove absolute path -->
<flattenmapper />
<!-- add lib/ prefix -->
<globmapper from="*" to="*" />
</chainedmapper>
</mapper>
<path>
<!-- lib.home contains all jar files, in several subdirectories -->
<fileset dir="${lib.home}">
<include name="*.jar" />
</fileset>
</path>
</pathconvert>
<!-- create the jar -->
<jar jarfile="${dist.home}/${jar.name}" basedir="${build.home}">
<!-- define MANIFEST.MF -->
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Main-Class" value="${mainclass}" />
<section name="common">
<attribute name="Specification-Title" value="${component.name}" />
<attribute name="Specification-Version" value="${component.version}" />
<attribute name="Specification-Vendor" value="${component.vendor}" />
<attribute name="Implementation-Title" value="${component.name}" />
<attribute name="Implementation-Version" value="${component.version} ${TODAY}" />
<attribute name="Implementation-Vendor" value="${component.vendor}" />
</section>
<!-- finally, use the magically generated libs path -->
<attribute name="Class-Path" value="${libs.project}" />
</manifest>
<exclude name="conf/client.properties"/>
<exclude name="log4j.properties"/>
</jar>

</target>

<target name="publish" depends="jar" >
<copy todir="${publishdir}/lib" >
<fileset dir="${lib.home}" >
<include name="*.jar"/>
</fileset>
</copy>
<copy todir="${publishdir}/dist" file="${dist.home}/${jar.name}"/>
<copy todir="${publishdir}/dist/conf" file="${build.home}/conf/client.properties"/>
<copy todir="${publishdir}/dist/conf" file="${build.home}/log4j.properties"/>
<copy todir="${publishdir}/lib" file="${dist.home}/${jar.name}"/>
<copy todir="${publishdir}/lib/conf" file="${build.home}/conf/client.properties"/>
<copy todir="${publishdir}/lib/conf" file="${build.home}/log4j.properties"/>
</target>



</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值