向蚂蚁致敬(2)

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

清单三:

<?xml version="1.0"?>

<project name="Panel" default="all">

<target name="setProps" unless="setProps">

<property name="outdir" value="/tmp/app/"/>

</target>

<target name="init" depends="setProps">

<tstamp/>

<property name="local_outdir" value="${outdir}/panel"/>

<property name="build" value="${local_outdir}/classes"/>

<property name="lib" value="${outdir}/lib"/>

<property name="panel_jar" value="${lib}/panel.jar"/>

</target>

<target name="clean" depends="init">

<delete dir="${local_outdir}"/>

<delete file="${panel_jar}"/>

</target>

<target name="prepare" depends="init">

<mkdir dir="${build}"/>

<mkdir dir="${lib}"/>

</target>

<target name="compile" depends="prepare">

<javac srcdir="./src" destdir="${build}"/>

</target>

<target name="package" depends="compile">

<jar jarfile="${panel_jar}" basedir="${build}"/>

</target>

<target name="all" depends="clean,package"/>

</project>

其中目标all为默认目标(default="all"),所以该构件文件中的所有目标都会被执行。因为目标all依赖于clean和package。clean依赖于init,init依赖于setprops。package依赖于compile,compile依赖于prepare,prepare依赖于init。

当然如果使用的同一文字在两次以上,那么就应该在init目标中定义它。

<property name="local_outdir" value="${outdir}/panel"/>

<property name="build" value="${local_outdir}/classes"/>

你可以看到在定义local_outdir的值中就使用了${outdir}。它代表local_outdir=/tmp/app/panel。 build的值中使用了${local_outdir}。它代表build=/tmp/app/panel/classes。

好了你可以在Panel目录中在命令行运行ant了,看看是否在G:\tmp\app\lib目录下有HelloWorldPanel.jar。

同样在Frame和Main目录中编写象上面那样的各自的构件文件(清单四)。当然了,HelloWorldMain依赖于HelloWorldFrame,HelloWorldFrame依赖于HelloWorldPanel,所以要在其各自的Main-INF中编写各自的清单文件(清单五)。

清单四:

<!—Frameàbuild.xml-->

<?xml version="1.0"?>

<project name="Frame" default="all">

<target name="setProps" unless="setProps">

<property name="outdir" value="/tmp/app/"/>

</target>

<target name="init" depends="setProps">

<tstamp/>

<property name="local_outdir" value="${outdir}/frame"/>

<property name="build" value="${local_outdir}/classes"/>

<property name="lib" value="${outdir}/lib"/>

<property name="frame_jar" value="${lib}/frame.jar"/>

</target>

<target name="clean" depends="init">

<delete dir="${build}"/>

<delete file="${frame_jar}"/>

</target>

<target name="prepare" depends="init">

<mkdir dir="${build}"/>

<mkdir dir="${lib}"/>

</target>

<target name="compile" depends="prepare">

<javac srcdir="./src" destdir="${build}">

<classpath>

<fileset dir="${lib}">

<include name="**/*.jar"/>

</fileset>

</classpath>

</javac>

</target>

<target name="package" depends="compile">

<jar jarfile="${frame_jar}" manifest="./META-INF/MANIFEST.MF" basedir="${build}"/>

</target>

<target name="all" depends="clean,package"/>

</project>

<!—Mainàbuild.xml-->

<?xml version="1.0"?>

<project name="application" default="all">

<target name="setProps" unless="setProps">

<property name="outdir" value="/tmp/app/"/>

</target>

<target name="init">

<tstamp/>

<property name="local_outdir" value="${outdir}/java_app"/>

<property name="build" value="${local_outdir}/classes"/>

<property name="lib" value="${outdir}/lib"/>

<property name="app_jar" value="${lib}/main.jar"/>

</target>

<target name="clean" depends="init">

<delete dir="${local_outdir}"/>

<delete file="${app_jar}"/>

</target>

<target name="prepare" depends="init">

<mkdir dir="${build}"/>

<mkdir dir="${lib}"/>

</target>

<target name="compile" depends="prepare">

<javac srcdir="./src" destdir="${build}">

<classpath>

<fileset dir="${lib}">

<include name="**/*.jar"/>

</fileset>

</classpath>

</javac>

</target>

<target name="package" depends="compile">

<jar jarfile="${app_jar}" manifest="./META-INF/MANIFEST.MF" basedir="${build}"/>

</target>

<target name="all" depends="clean,package"/>

</project>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有