【转】servlet-api源码的获取以及打包

servlet-api源码的获取打包

使用Ant打包servlet-api源码

王延成 (ybygjy#gmail.com), 作者/编者,

2010 年 01 月 27 日

本文单主要简述了获取编译打包servlet-api源代码的过程。所用到的ant脚本需要根据实际场景做简单的调整即可。

基本步骤

1、准备tomcat源码
  下载地址:[http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.28/src/]点击下载

2、ant环境
  下载地址:[http://archive.apache.org/dist/ant/binaries/]点击下载

3、ant脚本,这段脚本是改的人家源码里的那份build.xml。因为我们只需要取得源码,然后放到eclipse里做代码关联。所以删掉其它的target其中包括clear,所以执行完脚本后还需要:

  • copy出打包完成后的源文件,jar文件默认会在[dist/lib]下当然可修改build将它们放到其它地方
  • 手动的把相应ant创建的临时目录删掉。

  • 注意,需要把以下代码保存成servletApiSource.xml文件放到目录[jakarta-tomcat-5.0.28-src/jakarta-servletapi-5/jsr154]下,然后
    ant -f servletApiSource.xml

  • [xhtml]  view plain copy print ?
    1. <project name="Servlet API Classes" default="jar" basedir=".">  
    2.   <!-- Load user property definition overrides -->  
    3.   <property file="build.properties"/>  
    4.   <property file="${user.home}/build.properties"/>  
    5.   
    6.   <!-- Establish property definition defaults -->  
    7.   <property name="compile.debug"       value="true"/>  
    8.   <property name="compile.deprecation" value="false"/>  
    9.   <property name="compile.optimize"    value="true"/>  
    10.   <property name="implementation.revision" value="public_draft"/>  
    11.   <property name="servlet-api.build"    value="build"/>  
    12.   <property name="servlet-api.dist"     value="dist"/>  
    13.   <property name="jsp-api.src" value="../jsr152"/>  
    14.   <property name="servlet-api.jar" value="${servlet-api.dist}/lib/servlet-api.jar"/>  
    15.   <property name="servlet-api-source.jar" value="${servlet-api.dist}/lib/servlet-api-source.jar"/>  
    16.   <path id="examples.classpath">  
    17.     <pathelement location="${servlet-api.build}/classes"/>  
    18.   </path>  
    19.   
    20.   <!-- ===================== Prepare Directories ========================= -->  
    21.   <target name="prepare">  
    22.   
    23.     <!-- "Build" Hierarchy -->  
    24.     <mkdir dir="${servlet-api.build}"/>  
    25.     <mkdir dir="${servlet-api.build}/classes"/>  
    26.     <mkdir dir="${servlet-api.build}/docs"/>  
    27.     <mkdir dir="${servlet-api.build}/docs/api"/>  
    28.     <mkdir dir="${servlet-api.build}/examples"/>  
    29.   
    30.     <!-- "Dist" Hierarchy -->  
    31.     <mkdir dir="${servlet-api.dist}"/>  
    32.     <mkdir dir="${servlet-api.dist}/docs"/>  
    33.     <mkdir dir="${servlet-api.dist}/docs/api"/>  
    34.     <mkdir dir="${servlet-api.dist}/lib"/>  
    35.     <mkdir dir="${servlet-api.dist}/src"/>  
    36.     <mkdir dir="${servlet-api.dist}/examples"/>  
    37.   
    38.     <uptodate property="docs.uptodate" targetfile="${servlet-api.build}/docs/api/index.html">  
    39.       <srcfiles dir="src/share" includes="**/*.java" />  
    40.     </uptodate>  
    41.   </target>  
    42.   
    43.   <!-- ======================= Static Files ============================== -->  
    44.   <target name="static" depends="prepare">  
    45.   
    46.     <!-- "Dist" Hierarchy -->  
    47.     <copy todir="${servlet-api.dist}">  
    48.       <fileset dir="." includes="BUILDING.txt"/>  
    49.       <fileset dir="." includes="LICENSE"/>  
    50.       <fileset dir="." includes="README.txt"/>  
    51.     </copy>  
    52.   
    53.   </target>  
    54.   
    55.   <!-- ======================== Compile Classes ========================== -->  
    56.   <target name="compile" depends="static"  
    57.    description="Compile API classes (Default)">  
    58.   
    59.         <copy todir="${servlet-api.build}/src">  
    60.           <fileset dir="src/share">  
    61.             <include name="**/*"/>  
    62.           </fileset>  
    63.           <fileset dir="${jsp-api.src}/src/share">  
    64.             <include name="**/*"/>  
    65.           </fileset>  
    66.         </copy>  
    67.     <!-- Java classes -->  
    68.     <javac srcdir="${servlet-api.build}/src" destdir="${servlet-api.build}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}"/>  
    69.   
    70.     <!-- Associated property files -->  
    71.     <copy todir="${servlet-api.build}/classes">  
    72.         <fileset dir="src/share">  
    73.           <include name="**/*.properties"/>  
    74.         </fileset>  
    75.         <fileset dir="${jsp-api.src}/src/share">  
    76.             <include name="**/*.properties"/>  
    77.         </fileset>  
    78.     </copy>  
    79.   
    80.     <!-- Servlet resources -->  
    81.     <copy todir="${servlet-api.build}/classes/javax/servlet/resources">  
    82.         <fileset dir="src/share/dtd" includes="*.dtd,*.xsd">  
    83.           <exclude name="jsp*.dtd"/>  
    84.           <exclude name="web-jsp*.dtd"/>  
    85.         </fileset>  
    86.                 <fileset dir="${jsp-api.src}/src/share/dtd">  
    87.           <include name="jsp*.dtd"/>  
    88.           <include name="jsp*.xsd"/>  
    89.           <include name="web-jsp*.dtd"/>  
    90.           <include name="web-jsp*.xsd"/>  
    91.         </fileset>  
    92.     </copy>  
    93.     <!-- Servlet resources -->  
    94.     <copy todir="${servlet-api.build}/src/javax/servlet/resources">  
    95.         <fileset dir="src/share/dtd" includes="*.dtd,*.xsd">  
    96.           <exclude name="jsp*.dtd"/>  
    97.           <exclude name="web-jsp*.dtd"/>  
    98.         </fileset>  
    99.                 <fileset dir="${jsp-api.src}/src/share/dtd">  
    100.           <include name="jsp*.dtd"/>  
    101.           <include name="jsp*.xsd"/>  
    102.           <include name="web-jsp*.dtd"/>  
    103.           <include name="web-jsp*.xsd"/>  
    104.         </fileset>  
    105.     </copy>  
    106.   </target>  
    107.   
    108.   <!-- ===================== Distribution Files ========================= -->  
    109.   <target name="jar" depends="compile" description="Create the jar">  
    110.   
    111.     <!-- Prepare Manifest -->  
    112.     <copy tofile="${servlet-api.build}/manifest" file="src/etc/manifest" overwrite="yes">  
    113.       <filterset>  
    114.         <filter token="implementation.revision" value="${implementation.revision}"/>  
    115.       </filterset>  
    116.     </copy>  
    117.   
    118.     <!-- Create JAR file -->  
    119.     <jar jarfile="${servlet-api.jar}" basedir="${servlet-api.build}/classes" manifest="${servlet-api.build}/manifest">  
    120.       <include name="javax/servlet/**"/>  
    121.       <include name="javax/servlet/jsp/**"/>  
    122.     </jar>  
    123.     <jar jarfile="${servlet-api-source.jar}" basedir="${servlet-api.build}/src" manifest="${servlet-api.build}/manifest">  
    124.             <include name="javax/servlet/**"/>  
    125.         </jar>  
    126.   </target>  
    127. </project>  

    猜你喜欢

    转载自bigdragon.iteye.com/blog/1652241
    今日推荐