欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ant的一个例子

程序员文章站 2022-04-08 15:10:48
...
我用了两个文件,利用了继承关系,父XML build-compile.xml如下:
<project name="project" basedir="../../" default="all">
<tstamp prefix="build">
<format property="date" pattern="yyyyMMdd"/>
</tstamp>

<property name="module.dist.dir" value="${module.dir}/dist"/>
<property name="lib.dir" value ="dacx-thirdparty"/>
<property name="module.javasrc.dir" value="${module.dir}/javasrc"/>
<property name="module.business.dir" value="${module.javasrc.dir}/business"/>
<property name="module.web.dir" value="${module.javasrc.dir}/web"/>
<property name="module.impl.dir" value="${module.business.dir}/impl"/>
<property name="module.interface.dir" value="${module.business.dir}/interface"/>
<property name="module.entity.dir" value="${module.javasrc.dir}/ibatis"/>
<property name="module.dto.dir" value="${module.business.dir}/dto"/>
<property name="module.websrc.dir" value="${module.web.dir}"/>
<property name="module.util.dir" value="${module.javasrc.dir}/utils"/>


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

<target name="clear">
<delete dir="${module.dist.dir}/jars"/>
<delete dir="${module.dist.dir}/interface"/>
<delete dir="${module.dist.dir}/impl"/>
<delete dir="${module.dist.dir}/web"/>
<delete dir="${module.dist.dir}/dto"/>
<delete dir="${module.dist.dir}/entity"/>
</target>

<target name="init" depends="clear">
<mkdir dir="${module.dist.dir}/jars"/>
<mkdir dir="${module.dist.dir}/interface"/>
<mkdir dir="${module.dist.dir}/impl"/>
<mkdir dir="${module.dist.dir}/web"/>
<mkdir dir="${module.dist.dir}/dto"/>
<mkdir dir="${module.dist.dir}/entity"/>
</target>

<target name="entity_compile" depends="init">
<javac srcdir="${module.entity.dir}" source="1.5" description="将javasrc/ibatis目录下的类编译成class到dist/ibatis目录下,
在这个过程中,因为javasrc/ibatis依赖于很多jar包。所以这里将dacx-thirdparty所有的jar包都支持了进去。classpath指明了这些包的路径,还将dist下已经编译好了的jar也加进去了"
destdir="${module.dist.dir}/entity" debug="true" encoding="UTF-8" failonerror="false">
<classpath>
<fileset dir="${module.dist.dir}/jars">
<include name="*.jar"/>
</fileset>
</classpath>
<classpath refid="project.class.path"/>
</javac>

<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-entity.jar">
<zipfileset dir="${module.dist.dir}/entity">
<include name="**/*.class"/>
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</zipfileset>
<zipfileset dir="${module.entity.dir}">
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</zipfileset>
</jar>
</target>

<target name="dto_compile" >
<javac srcdir="${module.dto.dir}" source="1.5"
destdir="${module.dist.dir}/dto" debug="true" encoding="UTF-8" failonerror="false">
<classpath>
<fileset dir="${module.dist.dir}/jars">
<include name="*.jar"/>
</fileset>
</classpath>
<classpath refid="project.class.path"/>
</javac>
<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-dto.jar">
<zipfileset dir="${module.dist.dir}/dto">
<include name="**/*.class"/>
<include name="**/*.properties"/>
</zipfileset>
<zipfileset dir="${module.dto.dir}">
<include name="**/*.properties"/>
</zipfileset>
</jar>
</target>

<target name="interface_compile" >
<javac
srcdir="${module.util.dir}:
${module.interface.dir}"
source="1.5" destdir="${module.dist.dir}/interface" debug="true"
encoding="UTF-8" failonerror="false">
<classpath>
<fileset dir="${module.dist.dir}/jars">
<include name="*.jar"/>
</fileset>
</classpath>
<classpath refid="project.class.path"/>
</javac>

<jar
destfile="${module.dist.dir}/jars/dacx-${module.name}-interface.jar">
<zipfileset dir="${module.dist.dir}/interface">
<include name="**/*.class"/>
<include name="**/*.dtd"/>
<include name="**/*.properties"/>
</zipfileset>
<zipfileset dir="${module.util.dir}">
<include name="**/*.dtd"/>
<include name="**/*.properties"/>
</zipfileset>
<zipfileset dir="${module.interface.dir}">
<include name="**/*.dtd"/>
<include name="**/*.properties"/>
</zipfileset>
</jar>
</target>

<target name="impl_compile" >
<javac srcdir="${module.util.dir}:${module.impl.dir}" source="1.5"
destdir="${module.dist.dir}/impl" debug="true" encoding="UTF-8"
failonerror="false">
<classpath>
<fileset dir="${module.dist.dir}/jars">
<include name="*.jar"/>
</fileset>
</classpath>
<classpath refid="project.class.path"/>
</javac>

<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-impl.jar">
<zipfileset dir="${module.dist.dir}/impl">
<include name="**/*.class"/>
<include name="**/*.dtd"/>
<include name="**/*.properties"/>
<include name="**/*.bsh"/>
</zipfileset>

<zipfileset dir="${module.impl.dir}">
<include name="**/*.dtd"/>
<include name="**/*.properties"/>
<include name="**/*.bsh"/>
</zipfileset>
</jar>
</target>

<target name="web_compile" >

<javac srcdir="${module.websrc.dir}" source="1.5"
destdir="${module.dist.dir}/web" debug="true" encoding="UTF-8"
failonerror="false">

<classpath>
<fileset dir="${module.dist.dir}/jars">
<include name="*.jar"/>
</fileset>
</classpath>
<classpath refid="project.class.path"/>
</javac>

<jar destfile="${module.dist.dir}/jars/dacx-${module.name}-web.jar">
<zipfileset dir="${module.dist.dir}/web">
<include name="**/*.class"/>
<include name="**/*.properties" />
</zipfileset>
</jar>
</target>

<target name="all"
depends="entity_compile,dto_compile,interface_compile,impl_compile,web_compile"/>

</project>



子文件如下:
<project name="dacx" basedir="../" default="all">
<tstamp prefix="build">
<format property="date" pattern="yyyyMMdd"/>
</tstamp>

<property file="script/build.properties" description="加载引用的属性文件" />


<path id="project.class.path" description="提供需要用到的包的地址:lib.dir =../dacx-thirdparty">
<fileset dir="${lib.dir}">

<include name="**/*.jar"/>
<exclude name="bo-lib/*.jar"></exclude>
</fileset>
</path>
<target name="clear" description="删除编译了的文件:dacx下的dist目录下的文件,包括编译好了的class文件和jar文件">
<ant antfile="${build.template.dir}/build-compile.xml" target="clear" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>

<target name="init" description="在dacx下创立dist文件夹">
<ant antfile="${build.template.dir}/build-compile.xml" target="init" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>

<!--entity_compile-->
<target name="entity_compile" depends="init" description="将javasrc/ibaits目录下的类编译成calss放到/dist/entity目录下">
<ant antfile="${build.template.dir}/build-compile.xml" target="entity_compile" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>

<target name="dto_compile" depends="entity_compile">
<ant antfile="${build.template.dir}/build-compile.xml" target="dto_compile" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>


<!--interface_compile-->
<target name="interface_compile" >
<ant antfile="${build.template.dir}/build-compile.xml" target="interface_compile" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>
<!--impl_compile�-->
<target name="impl_compile">
<ant antfile="${build.template.dir}/build-compile.xml" target="impl_compile" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>
<!--web_compile-->
<target name="web_compile" >
<ant antfile="${build.template.dir}/build-compile.xml" target="web_compile" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>

<target name="copy-dist">
<ant antfile="${build.template.dir}/build-deploy.xml" target="copy-dist" inheritall="false">
<property name="module.name" value="${module.name}"/>
<property name="module.dir" value="${module.dir}"/>
</ant>
</target>
<!--all_compile-->
<target name="all_compile" depends="clear,init,entity_compile,dto_compile,
interface_compile,impl_compile,web_compile"/>
<target name="all" depends="all_compile,copy-dist"/>

</project>


属性文件
module.name =dacx

module.dir=${module.name}

module.javasrc.dir=javasrc

module.business.dir=${module.javasrc.dir}/business

module.web.dir=${module.javasrc.dir}/web

module.impl.dir=${module.business.dir}/impl

module.interface.dir=${module.business.dir}/interface

module.entity.dir=${module.javasrc.dir}/ibatis

module.dto.dir=${module.business.dir}/dto

module.util.dir=${module.javasrc.dir}/utils


webapp.dir=rhm-dacx

webapp.lib.dir=WEB-INF

module.dist.dir=dist

module.config.dir=config

lib.dir =../dacx-thirdparty
build.template.dir=${lib.dir}/build-module