Kela's Blog

            前面的路很坎坷,但毕竟是条路.也许走过这一段就会发现,走过去就是梦想中的地方.因此坚持成为此刻唯一能做且必须去做的事情.
posts - 9, comments - 27, trackbacks - 0, articles - 15

一个常用的 ant 创建和发布描述

Posted on 2005-11-25 08:54 Kela 阅读(1107) 评论(1)  编辑  收藏

web 应用常见的开发目录结构

app.home 
               + -- build           --存放由ant工具生成的web应用的开放目录结构
               + -- deploy        --存放由ant工具生成的web应用的 war 文件
               + -- doc             --存放由ant工具生成的JavaDoc文件
               + -- lib               --存放所有的 jar 文件
               + -- bin              --存放编译生成的 java 类( . class )文件
               + -- src              --存放 java 源文件和属性文件
               + -- webRoot     -- 存放 web 应用的 jsp ,html,图片等
                             |
                             + -- WEB-INF     --存放 web.xml 以及其他的配置文件(如 Struts的 cfg等)

创建 build.xml 配置文件

build.properties : 存放与 web 服务器相关的属性
build.xml : ant 任务的配置文件

以下是  build.properties
 
tomcat.home=D\:/JavaSoft/tomcat5
webapps.home=D\:/JavaSoft/tomcat5/webapps


以下是 build.xml
<?xml version="1.0" encoding="GB2312"?>
    <project name="JeeProjece" default="help" basedir=".">
 
    <property file="build.properties" />
    <property name="app.home"          value="."/>
    <property name="app.name"          value="HibernateProject"/>
 
    <property name="javadoc.pkg.top"   value="com"/>
 
    <property name="src.home"          value="${app.home}/src"/>
    <property name="bin.home"          value="${app.home}/bin"/> 
    <property name="lib.home"          value="${app.home}/lib"/>
 
    <property name="web.home"          value="${app.home}/web"/>
    <property name="doc.home"          value="${app.home}/doc"/>
    <property name="deploy.home"       value="${app.home}/deploy"/>
    <property name="build.home"        value="${app.home}/build"/>

    <!-- ClassPath -->
    <path id="compile.classpath">
         <!-- application is jar -->
         <fileset dir="${lib.home}">
             <include name="*.jar"/>
             <include name="*.zip"/>
         </fileset>
         <!-- Tomcat -->
         <fileset dir="${tomcat.home}/common/lib">
            <include name="*.jar"/>
         </fileset>
         <pathelement location="${tomcat.home}/common/classes"/>
     </path>
 
    <!-- help -->
    <target name="help">
       <echo message=" **********    说  明    ********** "/>
       <echo message=" (1). clean-file-1 : 删除 doc, deploy, build "/>
       <echo message=" (2). clean-file-2 : 删除 ... ... "/>
       <echo message=" (3). buildFile: 构建工程文件 "/>
      <echo message=" (4). compile: 编译源文件 "/>
      <echo message=" (5). build: 工程构建 "/>
      <echo message=" (6). deploy: 发布打包好的war文件"/>
      <echo message=" (7). javadoc: 生成JavaDoc"/>
      <echo message=" (8). copyApp: 复制生成的应用到服务器中去,依赖于 (5) 工程构建 "></echo>
    </target>
 
    <!-- clean doc, depoy, build -->
    <target name="clean-file-1">
       <delete dir="${deploy.home}"/>
       <delete dir="${doc.home}"/>
       <delete dir="${build.home}"/>
    </target>
 
    <!-- clean all -->
    <target name="clean-file-2"> 
    </target>
 
    <!-- 创建文件 -->
    <target name="buildFile">
  
        <mkdir dir="${bin.home}"/>
        <mkdir dir="${deploy.home}"/>

        <mkdir dir="${doc.home}"/>
        <mkdir dir="${doc.home}/api"/>

        <mkdir dir="${build.home}"/>
        <mkdir dir="${build.home}/WEB-INF" />
        <mkdir dir="${build.home}/WEB-INF/classes" />
        <mkdir dir="${build.home}/WEB-INF/lib" />
    </target>

    <!-- 编译源文件 -->
    <target name="compile">
        <javac srcdir="${src.home}" destdir="${bin.home}" debug="yes">
            <classpath refid="compile.classpath"/>
        </javac>
    </target>
 
    <!-- 构建 -->
    <target name="build">
       <echo message=" 开始构建工程 "/>
      
       <copy todir="${build.home}">
           <fileset dir="${web.home}"/>
        </copy>

        <copy todir="${build.home}/WEB-INF/classes">
            <fileset dir="${bin.home}"/>
        </copy>

        <copy todir="${build.home}/WEB-INF/classes">
            <fileset dir="${src.home}">
                   <include name="**/*.properties" />
                   <include name="**/*.prop" />
                   <include name="**/*.class" />
            </fileset>
        </copy>

        <copy todir="${build.home}/WEB-INF/lib">
             <fileset dir="${lib.home}" />
        </copy>

        <jar jarfile="${deploy.home}/${app.name}.war" basedir="${build.home}"/>
     </target>
 
    <!-- 发布打包后的war文件 -->
    <target name="deploy">
          <copy todir="${webapps.home}"  file="${deploy.home}/${app.name}.war" />
    </target>
 
   <!-- 生成 JavaDoc -->
   <target name="javadoc">
      <javadoc sourcepath = "${src.home}"
                            destdir = "${doc.home}/api"
                packagenames = "${javadoc.pkg.top}.*"/>
    </target>
 
    <!-- copy应用到服务器中去 -->
    <target name="copyApp" depends="build">
       <echo message=" 开始复制文件 "/>
  
       <copy todir="${webapps.home}/${app.name}">
            <fileset dir="${build.home}"/>
       </copy>
    </target>
</project>

Feedback

# re: 一个常用的 ant 创建和发布描述  回复  更多评论   

2009-11-20 15:27 by 早教老师
看不懂

只有注册用户登录后才能发表评论。


网站导航:
 
分享到: