ant自动编译发布Java项目

<?xml version="1.0" encoding="UTF-8"?>  
    <project name="TM-Test" default="build" basedir=".">  
        <!-- 工程根目录 -->  
        <property name="TM-Test.home" value="."/>  
        <!-- 工程根名 -->  
        <property name="TM-Test.name" value="TM-Test"/>  
        
        <!-- tomcat路径   -->  
         <!-- 
        <property name="tomcat.home" value="/usr/java/apache-tomcat-6.0.18"/>  
         -->
        <property name="tomcat.home" value="D:/apache-tomcat-6.0.33"/>   
        
        <!-- tomcat部署路径 -->  
        <property name="webapps.home" value="${tomcat.home}/webapps"/>  
         
        <!-- JAVA源文件路径 -->  
        <property name="src.home" value="${TM-Test.home}/src"/>  
          
        <!-- class文件存放位置 -->  
        <property name="classes.home" value="${TM-Test.home}/classes"/>  
        
        <!-- 发布文件夹 -->  
         <property name="deploy.home" value="${TM-Test.home}/deploy"/>  
        <!-- 
        <property name="deploy.home" value="${TM-Test.home}/deploy"/>  
         -->
         
        <!-- webRoot路径 -->  
        <property name="web.home" value="${TM-Test.home}/WebContent"/>  
          
        <!-- 创建工程路径 -->  
        <property name="build.home" value="${TM-Test.home}/build"/>  
        <!-- /WEB-INF/classes -->  
        <property name="build.classes" value="${TM-Test.home}/WEB-INF/classes"/>  
        <!-- /WEB-INF/lib -->  
        <property name="build.lib" value="${TM-Test.home}/WEB-INF/lib"/>  
        <!-- 工程引用包 -->  
        <property name="lib.home" value="${web.home}/WEB-INF/lib"/>  
          
          
        <!-- 编译工程所需的JAR包 -->  
        <path id="compile.classpath">  
            <pathelement location="${classes.home}"/>  
            <fileset dir="${lib.home}">  
                    <include name="*.jar"/>  
                    <include name="*.zip"/>  
            </fileset>  
            <fileset dir="${tomcat.home}/lib">  
                <include name="*.jar"/>  
            </fileset>  
            <pathelement location="${tomcat.home}/common/classes"/>  
        </path>  
          
          
        <!-- 测试ANT -->  
        <target name="help">  
            <echo message="Please specify a target![usage:ant<targetname>]"/>  
            <echo message="Here is a list of possible targets:"/>  
            <echo message="  clean-all....Delete build dir,all .class and war files"/>  
            <echo message="  perpare....Creates directories if requied"/>  
            <echo message="  compile....Compiles source files"/>  
            <echo message="  build......Build war file from.class and other files"/>  
            <echo message="  deploy......Copy war file to the webapps directory"/>  
        </target>  
          
          
        <!-- 清除 -->  
        <target name="clean-all">  
            <delete dir="${build.home}"/>  
            <delete dir="${classes.home}"/>  
            <delete dir="${deploy.home}"/>  
              
            <delete dir="${webapps.home}/${TM-Test.home}" failοnerrοr="false"/>
            <delete dir="${webapps.home}/work/" />  
            <delete dir="${webapps.home}/${TM-Test.name}.war"/>  
        </target>  
          
          
        <!-- 准备工作 -->  
        <target name="prepare" depends="clean-all">  
            <echo message="Tomcat Home=${tomcat.home}"/>  
            <echo message="Webapps Home=${webapps.home}"/>  
            <echo message="classes Home=${classes.home}"/>  
            <echo message="war Home=${deploy.home}"/>
            <echo message="Java src Home=${src.home}"/>
           
            <mkdir dir="${classes.home}"/>  
            <mkdir dir="${deploy.home}"/>       
              
            <mkdir dir="${build.home}"/>  
            <mkdir dir="${build.home}/WEB-INF"/>  
            <mkdir dir="${build.home}/WEB-INF/classes"/>  
            <mkdir dir="${build.home}/WEB-INF/lib"/>  
        </target>  
          
          
        <!-- 编译 -->  
        <target name="compile" depends="prepare">  
            <javac srcdir="${src.home}" destdir="${classes.home}"  includeantruntime="on" debug="true">
            	<compilerarg line="-encoding UTF-8"/>	  
                <classpath refid="compile.classpath"/>  
            </javac>  
        </target>  
          
        <!-- 构建临时工程 -->  
        <target name="build" depends="compile">  
            <copy todir="${build.home}">  
                <fileset dir="${web.home}"/>  
            </copy>  
            <copy todir="${build.home}/WEB-INF/classes">  
                <fileset dir="${classes.home}"/>  
            </copy>  
              
            <copy todir="${build.home}/WEB-INF/classes">  
                <fileset dir="${src.home}">  
                    <include name="**/*.properties"/>  
                    <include name="**/*.prop"/>  
                </fileset>  
            </copy>  
              
            <jar jarfile="${deploy.home}/${TM-Test.name}.war" basedir="${build.home}"/>  
        </target>  
        <!-- 发布 -->  
        <target name="deploy" depends="build">  
            <copy todir="${webapps.home}" file="${deploy.home}/${TM-Test.name}.war"/>  
        </target>  
              
        </project>  

ant编译后回自动在你项目下生成classes和deploy文件夹

    classes文件 存放的是编译后的文件

    depkoy存放的是  war包 也就说将lassess文件打成war包

 最后发布在你所配置的 tomcat/webapps下


修改tomcat路径即可

<!-- tomcat路径   -->  
                <property name="tomcat.home" value="D:/apache-tomcat-6.0.33"/>   

ps: 如果你是myeclipse创建的工程, 那么你需要将下面这个WebContent修改为WebRoot( 因为eclipse和myeclipse所创建的javaee工程结构是不同的) 即可
<!-- webRoot路径 -->  
        <property name="web.home" value="${TM-Test.home}/WebContent"/>  

修改生成的war包名称 只要修改value中的值即可

 <!-- 工程根名 -->  
        <property name="TM-Test.name" value="TM-Test"/>  

如果编译java文件的时候出现乱码的话可以在修改你的编码格式.将其中的<compilerarg line="-encoding GBK"/>

gbk换成你所需要的编码格式即可

 <target name="compile" depends="prepare">  
            <javac srcdir="${src.home}" destdir="${classes.home}"  includeantruntime="on" debug="true">
            	<compilerarg line="-encoding UTF-8"/>	  
                <classpath refid="compile.classpath"/>  
            </javac>  
        </target> 

如果你在编译java问价你的时候系统提示你

javac :警告 ;..............

这样的信息的话 是大部分是因为你程序集合没有使用泛型而造成的

如果你想把具体警告信息输出出来 你可以在以下加上<compilerarg value="-Xlint:unchecked"/> 具体是

<target name="compile" depends="prepare">  
            <javac srcdir="${src.home}" destdir="${classes.home}"  includeantruntime="on" debug="true">
            	<compilerarg line="-encoding UTF-8"/>
                <compilerarg value="-Xlint:unchecked"/>
                <classpath refid="compile.classpath"/>  
            </javac>  
        </target>  

如果对ant标签不熟悉的话 这里有一个 ant常用标签介绍 可以简单看一下




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值