ammayjxf

 

Ant编译打包项目

打包项目Ant编译

2008年12月27日 | 标签:

Blog项目对应的文件目录树如下:

blog:.
├─demo                 —— demo 目录
├─sql                      —— sql脚本目录
├─src                      —— Java源文件目录
├─test                     —— 测试文件目录
└─web                    —— web存放目录
    ├─admin
    ├─common
    ├─includes
    ├─scripts
    ├─system
    ├─themes
    ├─UserFiles
    └─WEB-INF       —— j2ee规范目录
        ├─classes     —— 编译路径
        ├─config
        └─lib               —— 类库目录
 

Ant对应的配置:

XML/HTML代码
  1. <?xml version="1.0"?>  
  2. <project name="ntsky_blog" default="war" basedir=".">  
  3.     <!– set global properties for this build –>  
  4.     <property name="product" value="ntsky_blog" />  
  5.     <property name="version" value="1.0" />  
  6.     <property name="year" value="2007" />  
  7.     <property name="author" value="ntsky" />  
  8.     <echo message="———– ${product} ${version} [${year}] [${author}] ————" />  
  9.     <property name="name" value="ntsky_blog" />  
  10.     <property name="app.dir" value="." />  
  11.     <property name="web.dir" value="${app.dir}/web" />  
  12.     <property name="src.dir" value="${app.dir}/src" />  
  13.     <property name="lib.dir" value="${web.dir}/WEB-INF/lib" />  
  14.     <property name="jar.name" value="ntsky_blog.jar" />  
  15.     <property name="tomcat.home" value="/usr/local/tomcat" />  
  16.     <property name="war.dir" value="${app.dir}/war" />  
  17.     <property name="build.dir" value="${web.dir}/WEB-INF/classes" />  
  18.     <echo message="" />  
  19.     <echo message="ntsky_blog build file" />  
  20.     <echo message="——————————————————" />  
  21.     <echo message="" />  
  22.     <echo message="Available targets are:" />  
  23.     <echo message="" />  
  24.     <echo message="clean    –> Clean output dirs" />  
  25.     <echo message="build    –> Compile main Java sources and copy libraries" />  
  26.     <echo message="war       –> Build the web application archive" />  
  27.     <echo message="all      –> Clean, build, docs, warfile, tests" />  
  28.     <echo message="" />  
  29.     <!– JAVA CLASSPATH –>  
  30.     <path id="classpath">  
  31.        <fileset dir="${lib.dir}">  
  32.            <include name="**/*.jar" />  
  33.            <include name="**/*.zip" />  
  34.        </fileset>  
  35.     </path>  
  36.     <path id="jsp:classpath">  
  37.        <!– Tomcat 5.0 –>  
  38.        <fileset dir="${tomcat.home}/server/lib">  
  39.            <include name="*.jar" />  
  40.        </fileset>  
  41.        <fileset dir="${tomcat.home}/common/lib">  
  42.            <include name="*.jar" />  
  43.        </fileset>  
  44.        <fileset dir="${tomcat.home}/common/bin">  
  45.            <include name="*.jar" />  
  46.        </fileset>  
  47.        <!–   
  48.        Tomcat 6.0   
  49.        <fileset dir="${tomcat.home}/lib">  
  50.            <include name="*.jar" />  
  51.        </fileset>  
  52.        <fileset dir="${tomcat.home}/bin">  
  53.            <include name="*.jar" />  
  54.        </fileset>  
  55.        –>  
  56.     </path>  
  57.     <target name="clean" description="Clean all build products">  
  58.        <delete dir="${build.dir}" quiet="true" />  
  59.        <delete file="${war.dir}/${name}.war" />  
  60.     </target>  
  61.     <target name="compile" depends="clean" description="Compile application">  
  62.        <echo>Compiled the source.</echo>  
  63.        <mkdir dir="${build.dir}" />  
  64.        <javac srcdir="${src.dir}" destdir="${build.dir}" debug="on" encoding="UTF-8">  
  65.            <include name="**/*.java" />  
  66.            <classpath refid="classpath" />  
  67.        </javac>  
  68.     </target>  
  69.     <target name="jar" depends="compile">  
  70.        <jar destfile="${lib.dir}/ntsky_blog.jar" basedir="${build.dir}" includes="**/*.class" >  
  71.            <fileset dir="${src.dir}">  
  72.               <include name="**/*.xml" />  
  73.               <include name="**/*.properties" />        
  74.               <exclude name="*.properties" />  
  75.               <exclude name="*.xml" />  
  76.            </fileset>           
  77.        </jar>  
  78.     </target>  
  79.     <target name="war" depends="compile" description="Build the web application archive">  
  80.        <delete dir="${build.dir}" quiet="true" />  
  81.        <copy todir="${build.dir}">  
  82.            <fileset dir="${src.dir}">  
  83.               <include name="*.properties" />  
  84.               <include name="*.xml" />  
  85.            </fileset>    
  86.        </copy>  
  87.        <mkdir dir="${war.dir}" />  
  88.        <war warfile="${war.dir}/${name}.war" webxml="${web.dir}/WEB-INF/web.xml">  
  89.            <fileset dir="${web.dir}" />  
  90.        </war>  
  91.     </target>  
  92.     <target name="compile-jsp">  
  93.   
  94.        <taskdef classname="org.apache.jasper.JspC" name="jasper">  
  95.            <classpath refid="jsp:classpath" />  
  96.        </taskdef>  
  97.   
  98.        <mkdir dir="${app.dir}/jspSrc" />  
  99.        <mkdir dir="${app.dir}/${product}" />  
  100.        <jasper verbose="0" package="ntsky_blog" outputDir="${app.dir}/jspSrc" uriroot="${app.dir}/WebRoot"/>  
  101.   
  102.        <javac srcdir="${app.dir}/jspSrc/ntsky_blog" destdir="${app.dir}" debug="on" encoding="UTF-8">  
  103.            <include name="**/*.java" />  
  104.            <exclude name="inc/*.java"/>  
  105.            <classpath refid="classpath" />  
  106.            <classpath refid="jsp:classpath" />  
  107.        </javac>  
  108.     </target>  
  109.     <target name="deploy" depends="jar" description="Build the web application archive">  
  110.        <delete dir="${build.dir}" quiet="true" />  
  111.        <copy todir="${build.dir}">  
  112.            <fileset dir="${src.dir}">  
  113.               <include name="*.properties" />  
  114.               <include name="*.xml" />  
  115.               <include name="*.server" />  
  116.            </fileset>  
  117.        </copy>  
  118.     </target>  
  119. </project>  
  120.   

说明 :

  1. 运行ant -f build.xml war或ant 将生成ntsky_blog.war包,将包丢到tomcat webapps下tomcat就会解包。
  2. ant -f  build.xml deploy将执行deploy这个target,将得到blog项目目录,将目录拷贝到tomcat/webapps下也可以运行
  3. 发布war包或目录时候都会生成ntsky_blog.jar,jar中包含ibatis对应的xml配置文件,而sturts这类配置文件还是在WEB-INF的classes下。
  4. 如果需要可以配置编译jsp的tag(编译jsp省去了tomcat自己编译jsp的步骤,当第一次访问jsp的时候,tomcat自己去编译而感觉速度很慢

posted on 2009-11-19 21:03 ammay 阅读(1281) 评论(0)  编辑  收藏


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


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜