ant使用小结

Java代码   收藏代码
  1. 1. <property file="build.properties"/>  

 

把build.properties文件里的键值对导入到build.xml ,以后就可以在build.xml 里使用${db.driver}来读到build.properties里配置的值org.hsqldb.jdbcDriver
这个很有用,需要改变值的时候,只需改变build.properties的值,但build.xml文件不用修改

Java代码   收藏代码
  1. db.url=jdbc:hsqldb:hsql://localhost/training  
  2. db.driver=org.hsqldb.jdbcDriver  
  3. db.username=sa  
  4. db.password=  
  5. hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect  

 2.<path id="ant.lib.path"></path>

指定了一个路径,路径下放着指定的jar文件

3. <path location="${classes.dir}"/>

指定了一个路径里的所有文件

4. <fileset dir="${xdoclet.lib.dir}">
      <include name="*.jar"/>
    </fileset>

这个表示把路径${xdoclet.lib.dir}里的所有的.jar文件包括进来,不包括子文件夹里的.jar文件

如果用这个 <include name="**/*.jar"/>,表示包括这个文件夹里所有的 .jar文件,包括所有子文件夹里的.jar文件

5.<copy toDir="${depends.dir}">
      <mapper type="flatten"/>
      <fileset refid="runtime.fileset"/>
    </copy>

表示将id名为runtime.fileset的<fileset >里包括的文件去掉文件夹copy到${depends.dir}

6. 打包工程

 <war destfile="${war.file}" webxml="${webxml.file}">
      <lib dir="${lib.dir}" includes="*.jar"/>
      <lib dir="${depends.dir}" includes="*.jar"/>
      
      <classes dir="${classes.dir}"/>
      <classes dir="${hbm.dir}"/>
      <webinf dir="${webinf.dir}" excludes="web.xml"/>
      <webinf dir="${target.dir}/webapp/WEB-INF"/>
      <fileset dir="${web.src.dir}" includes="index.html,jsp/**"/>
    </war>

destfile 在指定位置创造了一个.war文件

webxml 将指定位置的web.xml 放在webapp/WEB-INF里

<lib  将所包含的jar文件放在WEB-INF/lib 里

<classes 将所包含的文件放在WEB-INF/classes 里

<webinf   将指定路径的所有文件,除了web.xml,全部都copy到WEB-INF/里

<fileset  将指定路径的所有文件全部都copy到WEB-INF/的父目录,则和WEB-INF在同一个目录

7.用于将build.properties文件里的值来修改hibernate.properties里的属性值,动态生成一个hibernate.properties文件

<filter token="db.url" value="${db.url}"/>

<copy todir="${target.dir}/webapp/WEB-INF" 
        file="${config.dir}/hibernate.properties"
        filtering="true"
        overwrite="true"/>

 

表示但把  file指定路径下的hibernate.properties文件copy到指定路径时,将会执行一个动作,在hibernate.properties文件里所有出现的这个字符串(token指定的字符串)将被value指定的值所替换

 

 

Java代码   收藏代码
  1. <?xml version="1.0"?>  
  2. <!-- ======================================================================   
  3.      Aug 192004 7:18:13 PM                                                          
  4.   
  5.      Spring Training      
  6.      The Spring Training application from Spring in Action  
  7.                      
  8.      Craig Walls                                               
  9.      Ryan Breidenbach                
  10.      ====================================================================== -->  
  11. <project name="SpringTraining" default="war">  
  12.     
  13.   <description>  
  14.     The Spring Training application from Spring in Action  
  15.   </description>  
  16.     
  17.   <property name="target.dir" location="target"/>  
  18.   <property name="src.dir" location="src"/>  
  19.   <property name="java.src.dir" location="${src.dir}/java/main"/>  
  20.   <property name="test.src.dir" location="${src.dir}/java/test"/>  
  21.   <property name="web.src.dir" location="${src.dir}/webapp"/>  
  22.   <property name="webinf.dir" location="${web.src.dir}/WEB-INF"/>  
  23.   <property name="classes.dir" location="${target.dir}/classes"/>  
  24.   <property name="lib.dir" location="lib"/>  
  25.   <property name="war.file" location="${target.dir}/${ant.project.name}.war"/>  
  26.   <property name="webxml.file" location="${webinf.dir}/web.xml"/>  
  27.   <property name="depends.dir" location="${target.dir}/dependencies"/>  
  28.   <property name="xdoclet.lib.dir" location="xdocletlib"/>  
  29.   <property name="hbm.dir" location="${target.dir}/hbm"/>  
  30.   <property name="config.dir" location="config"/>  
  31.     
  32.   <property file="build.properties"/>  
  33. <!-- 指定了一个路径,路径下放着指定的jar文件   -->   
  34.   <path id="ant.lib.path">  
  35.     <fileset dir="${xdoclet.lib.dir}">  
  36.       <include name="*.jar"/>  
  37.     </fileset>  
  38.     <fileset dir="${spring.home}/lib">  
  39.       <include name="**/*.jar"/>  
  40.     </fileset>  
  41.     <fileset dir="${lib.dir}" includes="hsqldb*.jar"/>  
  42.     <path location="${classes.dir}"/>   
  43.   </path>  
  44.     
  45.   <fileset id="runtime.fileset" dir="${spring.home}/lib">  
  46.     <include name="aopalliance/aopalliance.jar" />  
  47.     <include name="hibernate/*.jar" />  
  48.     <include name="log4j/*.jar" />  
  49.     <include name="jakarta-commons/commons-logging.jar" />  
  50.     <include name="jakarta-commons/commons-lang.jar" />  
  51.     <include name="jakarta-commons/commons-beanutils.jar" />  
  52.     <include name="jakarta-commons/commons-digester.jar" />  
  53.     <include name="cglib/*.jar" />  
  54.     <include name="dom4j/*.jar" />  
  55.     <include name="j2ee/jta.jar" />  
  56.     <!--  
  57.     <include name="j2ee/jstl.jar" />  
  58.     <include name="jakarta-taglibs/*.jar" />  
  59.     -->  
  60.     <include name="itext/*.jar" />  
  61.     <include name="poi/*.jar" />  
  62.     <include name="oro/*.jar" />  
  63.     <include name="caucho/*.jar" />  
  64.   </fileset>  
  65.   
  66.   <!-- - - - - - - - - - - - - - - - - -   
  67.         target: copy dependency jars   
  68.        - - - - - - - - - - - - - - - - - -->  
  69.   <target name="-copyDependencies">  
  70.     <mkdir dir="${depends.dir}"/>  
  71.     <copy toDir="${depends.dir}">  
  72.       <mapper type="flatten"/>  
  73.       <fileset refid="runtime.fileset"/>  
  74.     </copy>  
  75.   </target>  
  76.     
  77.   <!-- =================================   
  78.         target: default                
  79.        ================================= -->  
  80.   <target name="war" depends="-copyDependencies,compile,generate-hbm,config"   
  81.       description="--> Build the WAR file">  
  82.     <war destfile="${war.file}" webxml="${webxml.file}">  
  83.       <lib dir="${lib.dir}" includes="*.jar"/>  
  84.       <lib dir="${depends.dir}" includes="*.jar"/>  
  85.         
  86.       <classes dir="${classes.dir}"/>  
  87.       <classes dir="${hbm.dir}"/>  
  88.       <webinf dir="${webinf.dir}" excludes="web.xml"/>  
  89.       <webinf dir="${target.dir}/webapp/WEB-INF"/>  
  90.       <fileset dir="${web.src.dir}" includes="index.html,jsp/**"/>  
  91.     </war>  
  92.   </target>  
  93.   
  94.   <!-- - - - - - - - - - - - - - - - - -   
  95.         target: generate hbm files  
  96.        - - - - - - - - - - - - - - - - - -->  
  97.   <target name="config">  
  98.     <filter token="db.url" value="${db.url}"/>  
  99.     <filter token="db.driver" value="${db.driver}"/>  
  100.     <filter token="db.username" value="${db.username}"/>  
  101.     <filter token="db.password" value="${db.password}"/>  
  102.     <filter token="hibernate.dialect" value="${hibernate.dialect}"/>  
  103.     <filter token="logfile.path" value="${logfile.path}"/>  
  104.   
  105.     <mkdir dir="${target.dir}/webapp/WEB-INF/classes"/>   
  106.   
  107.     <copy todir="${target.dir}/webapp/WEB-INF"   
  108.         file="${config.dir}/hibernate.properties"  
  109.         filtering="true"  
  110.         overwrite="true"/>  
  111.       
  112.     <copy todir="${target.dir}/webapp/WEB-INF/classes"  
  113.         file="${config.dir}/log4j.properties"  
  114.         filtering="true"  
  115.         overwrite="true"/>  
  116.   </target>   
  117.   
  118.   <!-- - - - - - - - - - - - - - - - - -   
  119.         target: generate hbm files  
  120.        - - - - - - - - - - - - - - - - - -->  
  121.   <target name="generate-hbm" depends="compile">  
  122.     <mkdir dir="${hbm.dir}"/>  
  123.       
  124.     <taskdef name="hibernatedoclet"   
  125.         classname="xdoclet.modules.hibernate.HibernateDocletTask"  
  126.         classpathref="ant.lib.path" />  
  127.   
  128.     <hibernatedoclet destdir="${hbm.dir}">  
  129.       <fileset dir="${java.src.dir}">  
  130.         <include name="**/*.java" />  
  131.       </fileset>  
  132.   
  133.       <hibernate version="2.0"/>   
  134.     </hibernatedoclet>  
  135.   </target>  
  136.   
  137.   <!-- - - - - - - - - - - - - - - - - -   
  138.         target: generate database schema  
  139.        - - - - - - - - - - - - - - - - - -->  
  140.   <target name="schema" depends="generate-hbm,config">  
  141.      
  142.     <taskdef name="schemaexport"  
  143.         classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"  
  144.         classpathref="ant.lib.path"/>  
  145.   
  146.     <schemaexport properties="${target.dir}/webapp/WEB-INF/hibernate.properties"   
  147.         quiet="yes"   
  148.         text="no"   
  149.         drop="no"   
  150.         delimiter=";"   
  151.         output="target/schema.sql">   
  152.   
  153.       <fileset dir="${hbm.dir}">   
  154.         <include name="**/*.hbm.xml"/>   
  155.       </fileset>   
  156.     </schemaexport>    
  157.   </target>  
  158.       
  159.   <!-- - - - - - - - - - - - - - - - - -   
  160.         target: setup database  
  161.        - - - - - - - - - - - - - - - - - -->  
  162.   <target name="setup_db" depends="schema">    
  163.     <sql driver="${db.driver}"  
  164.          url="${db.url}"  
  165.          userid="${db.username}"  
  166.          password="${db.password}"  
  167.          src="setup.sql"  
  168.          print="yes">  
  169.       <classpath>  
  170.         <pathelement location="lib/hsqldb.jar"/>  
  171.       </classpath>  
  172.     </sql>  
  173.   </target>   
  174.     
  175.     
  176.   <!-- - - - - - - - - - - - - - - - - -   
  177.         target: start Hypersonic                        
  178.        - - - - - - - - - - - - - - - - - -->  
  179.   <target name="hsql">  
  180.     <echo message="Starting HSQLDB"/>  
  181.     <java fork="true" dir="." classname="org.hsqldb.Server">  
  182.       <classpath>  
  183.         <pathelement path="${lib.dir}/hsqldb.jar"/>  
  184.       </classpath>  
  185.       <arg value="-database.0"/>  
  186.       <arg value="${hsql.path}"/>  
  187.       <arg value="-dbname.0"/>  
  188.       <arg value="${hsql.name}"/>  
  189.     </java>  
  190.   </target>  
  191.     
  192.   <!-- - - - - - - - - - - - - - - - - -   
  193.         target: compile                        
  194.        - - - - - - - - - - - - - - - - - -->  
  195.   <target name="compile">  
  196.     <mkdir dir="${classes.dir}"/>  
  197.     <javac srcdir="${java.src.dir}" destdir="${classes.dir}">  
  198.       <classpath>  
  199.         <pathelement path="${classpath}"/>  
  200.         <fileset dir="${xdoclet.lib.dir}">  
  201.           <include name="**/*.jar"/>  
  202.         </fileset>  
  203.         <fileset dir="${spring.home}/lib">  
  204.           <include name="**/*.jar"/>  
  205.         </fileset>  
  206.         <pathelement location="${spring.home}/dist/spring.jar"/>  
  207.       </classpath>  
  208.     </javac>  
  209.   </target>  
  210.       
  211.   <!-- - - - - - - - - - - - - - - - - -   
  212.           target: deploy web application  
  213.          - - - - - - - - - - - - - - - - - -->  
  214.   <target name="deploy" depends="war">  
  215.     <copy file="${war.file}" todir="${deploy.target}"/>  
  216.   </target>  
  217.     
  218.   <!-- - - - - - - - - - - - - - - - - -   
  219.         target: clean                        
  220.        - - - - - - - - - - - - - - - - - -->  
  221.   <target name="clean">  
  222.     <delete dir="${target.dir}"/>  
  223.   </target>  
  224.     
  225.     
  226.   <target name="zipItUp" depends="clean">  
  227.     <delete file="${target.dir}/${ant.project.name}.zip"/>  
  228.     <mkdir dir="${target.dir}"/>      
  229.   
  230.     <zip destfile="${target.dir}/${ant.project.name}.zip">  
  231.       <zipfileset dir="." prefix="${ant.project.name}">  
  232.         <include name="**"/>  
  233.         <exclude name="bin/**"/>  
  234.         <exclude name="target/**"/>  
  235.         <exclude name="todo.txt"/>  
  236.         <exclude name="src/webapp/WEB-INF/freemarker/**"/>  
  237.         <exclude name="src/webapp/WEB-INF/velocity/**"/>  
  238.       </zipfileset>  
  239.     </zip>  
  240.   </target>  
  241. </project>  

 

你可能感兴趣的:(ant)