1. 程式人生 > >ant 部署war包到tomcat,weblogic伺服器上

ant 部署war包到tomcat,weblogic伺服器上

最近專案中嘗試了一下ant打包部署。本文前提是你安裝好JDK,設定好環境變數,和安裝好ant。 Java程式碼  收藏程式碼
  1. <?xml version="1.0"?>   
  2. <project  name="test"   basedir="."default="deploy">   
  3.     <property  name="name" value= "test"/>  
  4.     <property  name="src" value="src"/>    
  5.     <property  name="lib" value="WebRoot/WEB-INF/lib"/>    
  6.     <property  name="webapp" value="WebRoot"/>   
  7.     <property  name="packages" value="com.*"/>    
  8.     <property  name="dist.dir" value="dist"/>  
  9.     <property name="build.src" value="${dist.dir}/${name}/src"/>    
  10.     <property name="build.dest" value="${dist.dir}/${name}/WEB-INF/classes"/>    
  11.     <property name="buildwar.dest" value=
    "${dist.dir}/${name}"/>    
  12.     <property name="build.javadocs" value="${dist.dir}/doc"/>  
  13.     <property name="jar.dest" value="${dist.dir}/jar"/>    
  14.     <property name="war.dest" value="${dist.dir}/war"/>   
  15.     <property name="weblogic.home" value="D:\oracle\Middleware\wlserver10.3" />  
  16.     <property name="wls.username" value="weblogic" />  
  17.     <property name="wls.password" value="password_1" />  
  18.     <property name="wls.hostname" value="localhost" />  
  19.     <property name="wls.port" value="7001" />  
  20.     <property name="wls.server.name" value="AdminServer" />  
  21.     <property name="warfile" value="${name}.war"/>  
  22.     <property name="tomcat.home" value="D:\apache\apache-tomcat-6.0.36"/>    
  23.      <!--<property name="j2eelib.dir" value="D:\Genuitec\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033\data\libraryset\EE_5"/>-->    
  24.     <path id="classpath">    
  25.        <!--   
  26.         <fileset dir="${j2eelib.dir}">    
  27.             <include name="**/*.jar"/>    
  28.        </fileset>  -->  
  29.         <fileset dir="${lib}">    
  30.             <include name="**/*.jar"/>    
  31.         </fileset>    
  32.         <fileset dir="${weblogic.home}\server\lib">  
  33.             <include name="weblogic.jar" />  
  34.          </fileset>  
  35.     </path>  
  36.     <target name="init" description="建立打包需要的路徑,拷貝原始檔到打包路徑下">  
  37.         <mkdir dir="${dist.dir}"/>  
  38.         <mkdir dir="${build.src}"/>    
  39.         <mkdir dir="${build.dest}"/>    
  40.         <mkdir dir="${buildwar.dest}"/>    
  41.         <mkdir dir="${jar.dest}"/>    
  42.         <mkdir dir="${war.dest}"/>    
  43.         <copy todir="${build.src}" overwrite="true">    
  44.             <fileset dir="${src}" >  
  45.                 <exclude name="log4j.properties"/>  
  46.                 <exclude name="version.properties"/>  
  47.             </fileset>  
  48.         </copy>    
  49.         <copy todir="${buildwar.dest}" overwrite="true">    
  50.             <fileset dir="${webapp}">  
  51.                 <exclude name="**/log4j.properties"/>  
  52.                  <exclude name="**/version.properties"/>  
  53.             </fileset>  
  54.         </copy>  
  55.     </target>  
  56.     <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy" classpathref="classpath" />  
  57.     <target name="build" depends="init" description="編譯 java 檔案,拷貝 properties 屬性配置檔案到編譯後的路徑下">    
  58.         <javac srcdir="${build.src}" encoding="utf-8" destdir="${build.dest}">    
  59.             <classpath refid="classpath"/>    
  60.         </javac>    
  61.         <copy todir="${build.dest}">    
  62.             <fileset dir="${build.src}">    
  63.                 <include name="**/*.xml"/>   
  64.                 <include name="**/config.properties"/>   
  65.             </fileset>    
  66.         </copy>    
  67.     </target>   
  68.     <target name="javadoc" depends="build" description="生成 java 的 API 幫助文件">    
  69.         <mkdir dir="${build.javadocs}"/>    
  70.         <javadoc packagenames="${packages}" encoding="utf-8" sourcepath="${build.src}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${name} API" doctitle="${name}">    
  71.             <classpath refid="classpath"/>    
  72.         </javadoc>    
  73.     </target>   
  74.     <target name="buildwar" depends="javadoc" description="打 war 包,不將 java 檔案打入包內">     
  75.         <delete dir="${build.src}"/>                    
  76.         <war warfile="${war.dest}/${warfile}" webxml="${buildwar.dest}/WEB-INF/web.xml">    
  77.             <lib dir="${buildwar.dest}/WEB-INF/lib"/>    
  78.             <classes dir="${build.dest}"/>    
  79.             <fileset dir="${buildwar.dest}" >  
  80.                  <include name="***.*" />  
  81.                 <include name="**/claim-servlet.xml" />  
  82.             </fileset>  
  83.         </war>  
  84.     </target>  
  85.     <target name="clean" depends="init" description="清除打包用臨時檔案">    
  86.         <delete dir="${build.src}"/>    
  87.         <delete>    
  88.             <fileset dir="${build.dest}" includes="**/*.classes"/>    
  89.         </delete>    
  90.         <delete dir="${buildwar.dest}"/>    
  91.     </target>   
  92.     <target name="deploywar" depends="buildwar,clean" description="釋出 war 包至 tomcat 目錄下">  
  93.           <copy todir="${tomcat.home}/webapps">    
  94.             <fileset dir="${war.dest}">    
  95.                 <include name="**/*.war"/>    
  96.             </fileset>    
  97.         </copy>    
  98.     </target>  
  99.     <target name="deploy"  depends="buildwar,clean,undeploy">  
  100.        <wldeploy action="deploy" name="${name}" source="${war.dest}/${warfile}"
  101.         targets="${wls.server.name}" user="${wls.username}" password="${wls.password}"
  102.         adminurl="t3://${wls.hostname}:${wls.port}" debug="true" verbose="true" failonerror="true" />  
  103.        <echo message="come here......" />  
  104.        <echo message="deploy success......." />  
  105.     </target>  
  106.     <target name="undeploy">  
  107.        <wldeploy action="undeploy" name="${name}" targets="${wls.server.name}" user="${wls.username}" password="${wls.password}" adminurl="t3://${wls.hostname}:${wls.port}" debug="false" verbose="false" failonerror="false" />  
  108.     </target>  
  109. </project>    


    這個檔案包含了。。打包到tomcat和weblogic2種方式,deploywar是指釋出到tomcat上,deploy是釋出weblogic伺服器上,weblogic部署需要一些引數,包括使用者名稱密碼埠之類,主要是name以weblogic和wls開頭的property屬性。裡面有個j2eelib.dir。主要是設定myeclipse 裡面java EE5環境的classpath。主要用於生成javadoc。。要注意,在編譯和生成javadoc的時候要設定編碼。
    如果大家也是myeclipse web專案,可以將這個build.xml放在專案的根目錄下。和SRC平級。然後改下專案名稱和tomcat或者weblogic的路徑,就可以執行了。(其實,在專案組使用中,應該是將這些需要配置的屬性放在一個properties檔案中,而build.xml是公用的無需修改的,我自己嘗試也就懶得搞了。)。可以直接在myeclipse中點選右鍵,run  as  Ant Build.如果已經安裝ant,也可以直接在cmd控制檯下進入到專案根目錄,輸入ant即可。