前面已经把ant的基本运行环境搭建好了,在接下来的工作中,将一步一步的开始构建我们的项目。
选择项目目录结构:
一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的事情,可能你会很习惯由IDE自动创建的目录结构,如Elcipse或JB,但有些时候,这样的目录结构可能并不是最好的,所以,在项目开始的时候,我们要对我们的目录结构进行合理的规划,这样,我们的项目在向前推动的过程中,才会井然有序。我个人比较推崇按项目模块来划分目录结构,这样整个项目不管进行到什么时候,也不管项目中有多少类,都可以很方便的找到你想要的资源。当然,对于一个项目来说,都有一个核心支撑模块来构成整个项目的骨架,那我们就从这个骨架开始,来构建我们的项目。
1.在你工作的任意硬盘上创建目录:x:/project,并在x:/project 下新建四个xml文件,文件名分别命名为:build-basic-environment.xml,build-common-java.xml,build.xml.build-common.xml
2.其中,builde-basic-environment.xml为进行系统构建的基础环境变量的设置,当然,可能有些ant用户喜欢使用.properties文件进行这些变量的描述,但我们个更喜欢以标准的xml格式来描述,并推荐使用这一方式。本文件的基本形式如下:
- xml version="1.0" encoding="UTF-8"?>
- <project name="basic-environment" basedir=".">
- <property name="project.name" value="myproject">
- property>
- <property environment="env" />
- <property name="template.dir" value="${basedir}/template"/>
- project>
<project basedir="." name="basic-environment"></project>
当然 ,以后我们的全局信息,可以不断的添加到本文件中。
3.build-common.xml,在本构建文件中,书写与模块相关的基础信息,虽然这些都是一些很简单的基础信息,但对整个项目来说,却像骨架一样。文件如下:
<project name="common"></project>
<project name="common"></project>
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="common">
- <property name="project.dir" value=".."></property>
- <property name="project.version" value="1.0.0"></property>
- <property name="packages" value="com.myproject"></property>
- <!-- ================================================================ -->
- <property name="build.dir" value="${basedir}/build" />
- <property name="dist.dir" value="${basedir}/dist" />
- <property name="bak.dir" value="${basedir}/bak" />
- <property name="doc.dir" value="${basedir}/doc" />
- <property name="class.dir" value="${build.dir}/classes"></property>
- <property name="javac.debug" value="true"></property>
- <property name="src.dir" value="${basedir}/src"></property>
- <property name="test.dir" value="${basedir}/test"></property>
- <property name="test.data.dir" value="${test.dir}/data"></property>
- <property name="test.reports.dir" value="${test.dir}/reports">
- </property>
- <property name="test.src" value="${test.dir}/src"></property>
- <property name="build.test.dir" value="${build.dir}/test">
- </property>
- <property name="build.web.dir" value="${build.dir}/web"></property>
- <property name="WebRoot.dir" value="${basedir}/WebRoot"></property>
- <property name="generator.dir" value="${basedir}/generator">
- </property>
- <property name="metada.dir" value="${basedir}/metada"></property>
- <property name="lib.dir" value="${project.dir}/lib" />
- <!-- =================================
- target: 系统路径
- ================================= -->
- <path id="project.class.path">
- <pathelement path="${classpath}" />
- <fileset dir="${lib.dir}">
- <include name="*.jar" />
- </fileset>
- </path>
- <!-- =================================
- target: 测试路径
- ================================= -->
- <path id="test.class.path">
- <path refid="project.class.path"></path>
- <pathelement path="${lib.dir}/junit.jar" />
- <pathelement path="${build.test.dir}" />
- <pathelement path="${class.dir}" />
- </path>
- </project>
4.接下来,我们来看build-common-java.xml文件,在这个文件里面,我们主要进行编译,打包,测试,发布等工作。今天发布的只是与项目目录结构构建相关的脚本。
<mkdir></mkdir>
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="build-common-java">
- <import file="build-common.xml" />
- <target name="init" description="系统构建目录初始化">
- <mkdir dir="${build.dir}" />
- <mkdir dir="${dist.dir}" />
- <mkdir dir="${bak.dir}" />
- <mkdir dir="${src.dir}">
- </mkdir>
- <mkdir dir="${doc.dir}" />
- <mkdir dir="${doc.dir}/source" />
- <mkdir dir="${doc.dir}/api" />
- <mkdir dir="${class.dir}" />
- <mkdir dir="${test.dir}" />
- <mkdir dir="${test.data.dir}" />
- <mkdir dir="${test.reports.dir}" />
- <mkdir dir="${test.src}" />
- <mkdir dir="${build.test.dir}" />
- <mkdir dir="${WebRoot.dir}" />
- <mkdir dir="${generator.dir}" />
- <mkdir dir="${metada.dir}" />
- </target>
- </project>
5.下面,我们在x:/project目录下新建文件夹template,并在本文件夹下新增以下结构的xml文件,名为:build.xml
<project basedir="." name="modeltemplate"></project>
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="modeltemplate" basedir=".">
- <property name="component.name" value="modeltemplate"></property>
- <import file="../build-common-java.xml" />
- </project>
<property name="component.name" value="modeltemplate"></property>
6.下面我们开始书写x:/project/build.xml脚本:
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="zaodian" basedir=".">
- <import file="build-basic-environment.xml" />
- <!-- - - - - - - - - - - - - - - - - -
- target: useage
- - - - - - - - - - - - - - - - - - -->
- <target name="help">
- <echo message="/**-------------------------------------------------------------------------" />
- <echo message="* 项目名称:${project.name} 网络支持系统" />
- <echo message="* 作者:宋海鹏" />
- <echo message="* 与作者联系:E_Mail:ecsun@sohu.com,QQ:82676683" />
- <echo message="----------------------------------------------------------------------------*/" />
- <echo message="|---> 系统构建任务列表" />
- <echo message="|- --> [ init ] --> 系统构建初始化" />
- <echo message="------------------------------------- END --------------------------------------" />
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: init 系统初始化
- - - - - - - - - - - - - - - - - - -->
- <target name="init">
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: create-new-model 创建新模?
- - - - - - - - - - - - - - - - - - -->
- <target name="create-new-model">
- <echo level="info">
- +-------------------------------------------------------------+
- | -- 欢迎使用${project.name}新模块生成向?! -- |
- | |
- | 请正确回答以下问题,这些问题对自对生成新模块非常关键 |
- +-------------------------------------------------------------+
- </echo>
- <input message="您希望新模块使用什么名字[model.name]?(注:模块名只能为英文)" addProperty="model.name">
- </input>
- <mkdir dir="${basedir}/${model.name}" />
- <copy todir="${basedir}/${model.name}">
- <fileset dir="${template.dir}/">
- <include name="build.xml" />
- </fileset>
- </copy>
- <ant dir="${basedir}/${model.name}" target="init">
- </ant>
- <replaceregexp flags="g">
- <regexp pattern="modeltemplate" />
- <substitution expression="${model.name}" />
- <fileset dir="${basedir}/${model.name}">
- <include name="build.xml" />
- </fileset>
- </replaceregexp>
- </target>
- </project>
<project basedir="." name="zaodian"></project>
<target name="create-new-model"></target>
好了,现在我们所有的工作做完了,在目录x:/project键入命令:
ant create-new-model,输入你想要使用的模块名,看会出现什么结果?下载附件试一试?