Ant中常用的元素和任务

sql 代码
  1. 以build_for_ejb_templet.xml为示例,讲解Ant中常用的元素和任务。    
  2.   
  3. 约定: "…"表示这里有很多代码,未列出    
  4.   
  5. build_for_ejb_templet.xml任务的分为以下几大部分    
  6. i. 开始    
  7. ii. 初始化    
  8. iii. 定义classpath    
  9. iv. 为编译作准备    
  10. v. 编译EJB部分    
  11. vi. 编译WEB部分    
  12. vii. 编译J2EE Application    
  13. viii. 部署Application    
  14. ix. 创建组件的API    
  15. x. 确定build的目标    
  16.   
  17. build_for_ejb_templet.xml的讲解    
  18.   
  19. 开始    
  20. <?xml version="1.0" encoding="UTF-8"?>    
  21. 讲解:encoding="UTF-8"表示XML文件采用UTF-8编码格式,如果要使用GBK编码,需定义为encodeing="GBK"。   
  22.   
  23. <!--     
  24.   Build file for 'componentName'     
  25.   Creation date : $Date: yyyy-m-d $     
  26.   Updated date : $Date: yyyy-m-d $     
  27.   Author:  developerName   
  28.   Copyright 2002 CompanyName, Inc. All rights reserved.     
  29. -->     
  30. 讲解:此部分为文件内容的简介,包括文件名称、创建日期、最后修改日期、创建文件的作者、版权。   
  31. componentName 表示 文件名称   
  32. yyyy-m-dd 表示 创建日期、最后修改日期的格式,如2002-5-1   
  33. developerName 表示 创建文件的作者   
  34. CompanyName 表示 公司名称或URL   
  35.   
  36. <project name="componentName" default="core" basedir=".">   
  37. …   
  38. </project>   
  39. 讲解:此部分定义了一个名称为componentName的项目元素,缺省的任务为"core"任务,根目录为当前目录。componentName表示组件的名称,这里指EJB的名称。   
  40.   
  41.   
  42.   
  43. 初始化    
  44. <target name="init">   
  45. …   
  46. </target>   
  47. 讲解:此部分用于初始化所有的变量   
  48.   
  49. <property file="../../build.properties" />   
  50. 讲解:导入项目根目录下build.properties中的全局变量,开发人员也可以在此文件中重新定义全局变量。   
  51.   
  52. <property name="jboss.lib" value="${jboss.home}/lib" />     
  53. <property name="jboss.client" value="${jboss.home}/client" />     
  54. <property name="jboss.deploy" value="${jboss.home}/server/${jboss.configuration}/deploy" />     
  55. …   
  56. <property name="jboss.dir"      value="${jboss.home}" />     
  57. …   
  58. <property name="deploy.ormi"     value=""/>     
  59. <property name="deploy.username" value=""/>     
  60. <property name="deploy.password" value=""/>   
  61. 讲解:定义和Jboss Application Server有关的变量,包括lib目录、client目录、   
  62. deploy目录和J2EE Application部署要用到的一些变量。   
  63.   
  64. <property name="name"  value="componentName"/>     
  65. 讲解:定义组件的名称   
  66.   
  67. <property name="src.dir" value="${basedir}/src"/>     
  68. 讲解:定义源代码目录路径   
  69.   
  70. <property name="etc.dir" value="${basedir}/etc"/>     
  71. 讲解:定义资源目录路径   
  72.   
  73. <property name="lib.dir" value="${basedir}/lib"/>     
  74. 讲解:定义库目录路径   
  75.   
  76. <property name="build.dir" value="${basedir}/build"/>     
  77. 讲解:定义build目录路径   
  78.   
  79. <property name="src.main.dir" value="${src.dir}/main"/>   
  80. 讲解:定义源代码的主目录路径   
  81.   
  82. <property name="src.ejb.dir" value="${src.main.dir}/ejb"/>     
  83. 讲解:定义存放EJB的源代码目录路径   
  84.   
  85. <property name="src.javabean.dir" value="${src.main.dir}/javabean"/>   
  86. 讲解:定义存放JavaBean的源代码目录路径   
  87.   
  88. <property name="src.servlet.dir" value="${src.main.dir}/servlet"/>   
  89. 讲解:定义存放Servlet的源代码目录路径   
  90.   
  91. <property name="src.web.dir" value="${src.main.dir}/web"/>     
  92. 讲解:定义存放WEB部分文件(包括JSP程序、HTML文件、图片、CSS文件、JS脚本等)的目录路径   
  93.   
  94. <property name="javadoc.dir" value="${lib.dir}/docs/api"/>    
  95. 讲解:定义存放组件API的开发文件目录路径   
  96.   
  97. <property name="ejb-classes.dest" value="${lib.dir}/ejb"/>     
  98. 讲解:定义存放EJB的编译代码目录路径   
  99.   
  100. <property name="javabean-classes.dest" value="${lib.dir}/javabean"/>     
  101. 讲解:定义存放JavaBean的编译代码目录路径   
  102.   
  103. <property name="web-classes.dest" value="${lib.dir}/web/WEB-INF/classes" />   
  104. 讲解:定义WEB目录的类目录路径   
  105.   
  106. <property name="web-lib.dest" value="${lib.dir}/web/WEB-INF/lib" />     
  107. 讲解:定义WEB目录的库目录名称   
  108.   
  109. <property name="pkg-dist.name" value="${name}-pkg"/>     
  110. 讲解:定义压缩文档的名称   
  111.   
  112. <property name="ProjectName.components.home" value="../../components" />     
  113. 讲解:定义项目的组件目录路径   
  114.   
  115. <!-- Define componentName Component -->   
  116. 讲解:这段为注释,说明以下是定义当前组件的变量   
  117.   
  118. <property name="ProjectName.componentName.name" value="componentName"/>   
  119. 讲解:定义当前组件的名称   
  120.   
  121. <property name="ProjectName.componentName.home" value="${ProjectName.components.home}/componentName"/>   
  122. 讲解:定义当前组件的目录路径   
  123.   
  124. <property name="ProjectName.componentName.classbindir"    
  125. value="${ProjectName.componentName.home}/lib/ejb"/>   
  126. 讲解:定义当前组件的EJB编译目录路径   
  127. <property name="ProjectName.componentName.ejbjar"    
  128. value="${ProjectName.componentName.home}/build/componentName-ejb.jar"/>   
  129. 讲解:定义当前组件内的EJB包的路径   
  130.   
  131. <property name="ProjectName.componentName.ejbjar.client"    
  132. value="${ProjectName.componentName.home}/build/componentName-ejb-client.jar"/>   
  133. 讲解:定义当前组件内的EJB客户端包的路径   
  134.   
  135. <!-- Define referencesComponentName Component -->   
  136. 讲解:这段为注释,说明以下是定义引入其它组件的变量   
  137.   
  138. <property name="ProjectName.referencesComponentName.name"    
  139. value="referencesComponentName"/>   
  140. 讲解:定义指定组件的名称   
  141.   
  142. <property name="ProjectName.referencesComponentName.home"    
  143. value="${ProjectName.components.home}/referencesComponentName"/>   
  144. 讲解:定义指定组件的目录路径   
  145.   
  146. <property name="ProjectName.referencesComponentName.classbindir"    
  147. value="${ProjectName.referencesComponentName.home}/lib/ejb"/>   
  148. 讲解:定义指定组件的EJB编译目录路径   
  149.   
  150. <property name="ProjectName.referencesComponentName.ejbjar"    
  151. value="${ProjectName.referencesComponentName.home}  
  152. /build/referencesComponentName-ejb.jar"/>   
  153. 讲解:定义指定组件内的EJB包的路径   
  154.   
  155. <property name="ProjectName.referencesComponentName.ejbjar.client"    
  156. value="${ProjectName.referencesComponentName.home}  
  157. /build/referencesComponentName-ejb-client.jar"/>   
  158. 讲解:定义指定组件内的EJB客户端包的路径   
  159.   
  160. <property name="build.classpath"    
  161. value="${jboss.client}/jboss-j2ee.jar:${jboss.client}  
  162. /jnp-client.jar:${jboss.client}/jnp-client.jar:${jboss.client}  
  163. /jbossmq-client.jar:${jboss.client}/jbosssx-client.jar:${jboss.client}  
  164. /concurrent.jar:${jboss.client}/jaas.jar:${jboss.lib}  
  165. /jboss-jmx.jar:${jboss.home}/server/${jboss.configuration}  
  166. /lib/jbosssx.jar:${jboss.home}/server/${jboss.configuration}  
  167. /lib/mail.jar:${servlet-lib.path}:${ejb-classes.dest}:  
  168. ${web-classes.dest}:${ProjectName.componentName.classbindir}:  
  169. ${ProjectName.componentName.ejbjar.client}:  
  170. ${ProjectName.referencesComponentName.classbindir}:  
  171. ${ProjectName.referencesComponentName.ejbjar.client}" />   
  172. 讲解:定义classpath,编译bean时要用到。这是定义classpath的一种方法,下面还有另一种方法。   
  173.   
  174. 定义classpath    
  175. <!-- ================================================================== -->     
  176.   <!-- Define the classpath for compile the component                     -->   
  177.   <!-- ================================================================== -->     
  178.   <path id="base.path">     
  179.       <pathelement location="${jboss.client}/jboss-j2ee.jar" />     
  180.       <pathelement location="${jboss.client}/jnp-client.jar" />     
  181.       <pathelement location="${jboss.client}/jbossmq-client.jar" />     
  182.       <pathelement location="${jboss.client}/jbosssx-client.jar" />     
  183.       <pathelement location="${jboss.client}/concurrent.jar" />    
  184.       <pathelement location="${jboss.client}/jaas.jar" />     
  185.       <pathelement location="${jboss.lib}/jboss-jmx.jar" />     
  186.       <pathelement    
  187. location="${jboss.home}/server/${jboss.configuration}/lib/jbosssx.jar" />     
  188.       <pathelement    
  189. location="${jboss.home}/server/${jboss.configuration}/lib/mail.jar" />     
  190. </path>     
  191. 讲解:此段定义应用服务器中包文件,如支持ejb的jboss-j2ee.jar、支持客户端程序的jnp-client.jar、jbossmq-client.jar、jbosssx-client.jar、支持JavaMail的mail.jar等。   
  192.   
  193.    <path id="project.path">     
  194.       <path refid="base.path"/>   
  195.       <pathelement location="${ProjectName.componentName.classbindir}"/>   
  196.       <pathelement location="${ProjectName.componentName.ejbjar.client}"/>   
  197.       <pathelement   
  198. location="${ProjectName.referencesComponentName.classbindir}"/>   
  199.       <pathelement location="${ProjectName.referencesComponentName.ejbjar.client}"/>   
  200.    </path>     
  201. 讲解:此段定义项目中要用到的包文件。   
  202.   
  203.    <path id="web.path">   
  204.          <path refid="project.path"/>   
  205.          <pathelement location="${servlet-lib.path}"/>   
  206.          <pathelement location="${ejb-classes.dest}"/>   
  207.    </path>   
  208. 讲解:此段定义在编译servlet时的classpath,${ servlet-lib.path }是系统指定的Servlet引擎包。   
  209.   
  210. 为编译作准备工作    
  211. <!--=============================================================== -->     
  212.    <!-- Removes all created files and directories                      -->     
  213.    <!-- ============================================================== -->     
  214.    <target name="clean" depends="init">     
  215.       <delete dir="${lib.dir}" />     
  216.       <delete dir="${build.dir}" />     
  217.    </target>   
  218. 讲解:清除build、lib目录下的所有文件和目录。   
  219.   
  220.    <!-- ================================================================ -->     
  221.    <!-- Makes sure the needed directory structure is in place              -->     
  222.    <!-- ================================================================ -->     
  223.    <target name="prepare" depends="init,clean">     
  224.       <mkdir dir="${lib.dir}" />     
  225.       <mkdir dir="${lib.dir}/ejb" />     
  226.       <mkdir dir="${lib.dir}/ejb/META-INF" />     
  227.       <mkdir dir="${lib.dir}/web" />     
  228.       <mkdir dir="${lib.dir}/web/WEB-INF" />     
  229.       <mkdir dir="${lib.dir}/web/WEB-INF/classes" />     
  230.       <mkdir dir="${lib.dir}/web/WEB-INF/lib" />     
  231.       <mkdir dir="${lib.dir}/j2ee" />     
  232.       <mkdir dir="${lib.dir}/META-INF" />     
  233.       <mkdir dir="${lib.dir}/docs/api" />   
  234.       <mkdir dir="${build.dir}" />     
  235.    </target>     
  236. 讲解:创建build中要用到的所有目录,根据需要可以加入自定义的目录如:   
  237.       <mkdir dir="${lib.dir}/javabean/ " />   
  238.   
  239. 编译EJB部分   
  240. <!-- ================================================================ -->     
  241.    <!-- Compilation of the EJB part of the application                     -->     
  242.    <!-- ================================================================ -->     
  243.    <target name="ejb-classes" depends="prepare">     
  244.       <javac srcdir="${src.ejb.dir}"     
  245.              destdir="${ejb-classes.dest}"     
  246.              includes="com/**"     
  247.              classpathref="base.path" />   
  248.    </target>     
  249. 讲解:此小段用来完成编译ejb和其它help classes。根据需要可以加入一个非常有用的元素:   
  250.              encoding="${javac.encoding}"  
  251.   
  252.    <target name="ejb-meta-inf" depends="prepare">     
  253.       <copy file="${etc.dir}/ejb-jar.xml"     
  254.             tofile="${lib.dir}/ejb/META-INF/ejb-jar.xml" />     
  255.       <copy file="${etc.dir}/jaws.xml"     
  256.             tofile="${lib.dir}/ejb/META-INF/jaws.xml" />     
  257.       <copy file="${etc.dir}/jboss.xml"     
  258.             tofile="${lib.dir}/ejb/META-INF/jboss.xml" />     
  259.       <copy file="${etc.dir}/jbosscmp-jdbc.xml"     
  260.             tofile="${lib.dir}/ejb/META-INF/jbosscmp-jdbc.xml" />     
  261.    </target>   
  262. 讲解:此小段用来拷贝EJB部署文件,在JAS中EJB部署文件有jaws.xml、jboss.xml、jbosscmp-jdbc.xml。   
  263.   
  264.    <target name="ejb-jar" depends="ejb-classes,ejb-meta-inf">     
  265.       <jar jarfile="${build.dir}/${name}-ejb.jar"     
  266.            basedir="${lib.dir}/ejb" />     
  267.    </target>     
  268. 讲解:此小段用来把class和部署文件压缩成包文件,这个包文件就是一个EJB组件。   
  269.   
  270.    <target name="ejbclientjar" depends="ejb-jar,web-classes">   
  271.       <copy    
  272. file="${ProjectName.referencesComponentName.home}/build/  
  273. ${ProjectName.referencesComponentName.name}-ejb-client.jar"     
  274.           tofile="${build.dir}/${ProjectName.referencesComponentName.name}  
  275.           -ejb-client.jar" />     
  276.       <jar jarfile="${build.dir}/${name}-ejb-client.jar"     
  277.            basedir="${lib.dir}/ejb"  
  278.            excludes="com/ProjectName/componentName/ejb/ComponentNameEJB.class" />     
  279.    </target>   
  280. 讲解:此小段用来把class和部署文件压缩成包文件,以支持客户端运行。   
  281.   
  282. 编译WEB部分   
  283. <!-- ================================================================== -->     
  284.    <!-- Compilation of the web part of the application                     -->     
  285.    <!-- ================================================================== -->     
  286.    <target name="web-classes" depends="prepare,ejb-jar">     
  287.       <javac srcdir="${src.servlet.dir}"     
  288.              destdir="${lib.dir}/web/WEB-INF/classes"     
  289.              includes="com/**"     
  290.              classpath="${build.classpath}" />     
  291.    </target>     
  292. 讲解:此小段用来完成编译servlet。   
  293.   
  294.    <target name="web-web-inf" depends="prepare">   
  295.       <copy file="${etc.dir}/jboss-web.xml"     
  296.             tofile="${lib.dir}/web/WEB-INF/jboss-web.xml" />     
  297.       <copy file="${etc.dir}/web.xml"     
  298.             tofile="${lib.dir}/web/WEB-INF/web.xml" />     
  299.    </target>   
  300. 讲解:此小段用来拷贝WEB部署文件,在JAS中WEB部署文件有jboss-web.xml。   
  301.   
  302.    <target name="war" depends="web-classes,web-web-inf">     
  303.       <copy todir="${lib.dir}/web" >   
  304.        <fileset dir="${src.web.dir}"/>   
  305.       </copy>   
  306.       <copy   
  307. file="${build.dir}/${ProjectName.referencesComponentName.name}-ejb-client.jar"     
  308. tofile="${lib.dir}/web/WEB-INF/lib/${ProjectName.referencesComponentName.name}  
  309. -ejb-client.jar" />       
  310.      <jar jarfile="${build.dir}/${name}-web.war"     
  311.            basedir="${lib.dir}/web" />     
  312.    </target>   
  313. 讲解:此小段用来把所有的JSP程序、Html、Css、图片和部署文件等压缩成WAR文件。   
  314.   
  315. 编译J2EE Application   
  316. <!-- ================================================================== -->     
  317.    <!-- Compilation of the complete J2EE application (both web and EJB)    -->     
  318.    <!-- ================================================================== -->     
  319.    <target name="j2ee-meta-inf" depends="prepare">     
  320.       <copy file="${etc.dir}/application.xml"     
  321.             tofile="${lib.dir}/j2ee/META-INF/application.xml" />     
  322.    </target>     
  323. 讲解:此小段用来拷贝Application的部署文件。   
  324.   
  325.    <target name="ear" depends="ejb-jar,war,j2ee-meta-inf">     
  326.       <copy file="${build.dir}/${name}-ejb.jar"     
  327.             tofile="${lib.dir}/j2ee/${name}-ejb.jar" />     
  328.       <copy file="${build.dir}/${name}-web.war"     
  329.             tofile="${lib.dir}/j2ee/${name}-web.war" />     
  330.       <jar jarfile="${build.dir}/${name}.ear"     
  331.            basedir="${lib.dir}/j2ee" />     
  332.    </target>     
  333. 讲解:此小段用来把EJB组件、支持客户端运行的包和部署文件压缩成EAR文件,它就是一个J2EE Application。这里要说明,在进行build时,根据需要可以不生成EAR文件。   
  334.   
  335. 部署Application   
  336. <!-- ================================================================ -->   
  337.    <!-- Deploy EAR file                                                   -->   
  338.    <!-- ================================================================ -->   
  339.    <target name="deploy-server" depends="ear,war">     
  340.       <copy todir="${jboss.deploy}">     
  341.          <fileset dir="${build.dir}" includes="*.ear">     
  342.          </fileset>     
  343.       </copy>     
  344.    </target>     
  345. 讲解:此小段用来部署Application,在JAS3.0中${jboss.deploy}是JAS的热部署目录。   
  346.   
  347. 创建组件的API   
  348. <!-- =================================================================== -->   
  349.    <!-- Create class and package usage pages                                -->   
  350.    <!-- =================================================================== -->   
  351.    <target name="docs" depends="init">   
  352.     <javadoc locale="${javadoc.locale}" packagenames="${package.names}.${name}.*"     
  353.              destdir="${javadoc.dir}"     
  354.              classpath="${build.classpath}"  
  355.              encoding="${javadoc.encoding}"  
  356.              author="${javadoc.author}"  
  357. version="${javadoc.version}"    
  358. use="${javadoc.usage}"     
  359.              windowtitle="${project.name} ${name} Component API"  
  360.              doctitle="${project.name} ${name} Component"     
  361.              bottom="Copyright ${sign.copyright} ${project.date}   
  362. ${company.signature}. All Rights Reserved.">     
  363. <classpath >   
  364.         <pathelement path="${lib.dir}/ejb"/>     
  365.       </classpath>   
  366.       <sourcepath>   
  367.         <pathelement path="${src.main.dir}/ejb"/>   
  368.       </sourcepath>   
  369.     </javadoc>   
  370.    </target>   
  371. 讲解:此小段用来创建组件的API。这里强烈要求类设计人员和编码人员按照Javadoc定义的标签对源代码进行注释。   
  372.   
  373.   
  374.   
  375. 确定build的目标   
  376. <target name="startbanner">   
  377.       <echo>+---------------------------------------+</echo>   
  378.       <echo>+    Building ${name} Component         +</echo>   
  379.       <echo>+---------------------------------------+</echo>   
  380.    </target>   
  381.    <target name="endbanner" depends="main" >   
  382.       <echo>+---------------------------------------+</echo>   
  383.       <echo>+    Finished ${name} Component         +</echo>   
  384.       <echo>+---------------------------------------+</echo>   
  385.    </target>   
  386.    <target name="main" depends="startbanner, ejb-jar, ejbclientjar" />   
  387.    <target name="main2" depends="startbanner, ejb-jar,  
  388. ejbclientjar,war" />   
  389.    <target name="main3" depends="startbanner, ejb-jar,   
  390. ejbclientjar,war,ear,deploy-server" />   
  391.    <target name="core" depends="ejb-war" />   
  392.    <target name="ejb-war" depends="main2,endbanner" />   
  393.    <target name="deploy" depends="main3,endbanner" />   
  394.    <target name="all" depends="core, docs" />   
  395. 讲解:此小段用来确定build的目标。缺省目录为core,所以在build不加参数时,系统将只生成jar文件和war文件。如果 build时加上参数,系统将根据需要来生成文件,例如:在命令行输入ant deploy,系统将生成jar文件、war文件、ear文件,同时将ear文件进行部署。   
内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京深圳在总指数中名列前茅,分别以91.2684.53的得分领先,展现出强大的资金投入、创新能力基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业研究人员。 使用场景及目标:①了解低空经济的定义、分类发展驱动力;②掌握低空经济的主要应用场景市场规模预测;③评估各城市在低空经济发展中的表现潜力;④为政策制定、投资决策企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设区域融合错位的重要性,提出了加强法律法规建设、人才储备基础设施建设等建议。低空经济正加速向网络化、智能化、规模化集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值