ANT入门&用ANT编译java项目

第一次接触ant是15年在无锡某软件公司实习时,当时的项目是由多个模块组成,开发分成模块开发的几个小组。为了提高开发效率,采用这种编译项目的方法。

最近接触到flex项目,采用eclipse自动编译的方法,开发效率极低。于是着手写自己的第一个bulid.xml文件。

(前提,jdk已配置好,此处不再赘述)

入门:下载并配置ant.

下载完成后直接解压到指定目录就ok了,然后配置环境变量。

PATH:C:Program FilesApache Software Foundationapache-ant-1.9.7in;

ANT_HOME:C:Program FilesApache Software Foundationapache-ant-1.9.7

配置完成后:cmd 输入ant -version

编译java项目:

首先在项目中新建build.xml  和build.properties(用于属性的设置)文件

build.xml:

build文件主要由两部分组成:project和target,target之间可以有依赖关系,一般web项目,首先清除已经生成的class文件,然后再编译,最后copy到tomcat.

<?xml version="1.0" encoding="UTF-8"?>
<project name="nczsc" default="build.proj" basedir="." >
    <property file="build.properties"/>
    <target name="info">
     <echo message="******************PROJECT:${project}******************"/>
     <echo message="******************AUTHOR:${author}******************"/>
    </target>
   <target name="clean" depends="info">
       <echo message="CLEAN PROJECT..."/>
       <delete dir="${user.dir}${classes}common"/>
       <delete dir="${user.dir}${classes}util"/>
       <delete dir="${user.dir}${classes}config"/>
       <delete dir="${user.dir}${classes}export"/>
       <delete dir="${user.dir}${classes}vo"/>
       <delete dir="${user.dir}${classes}com"/>
       <delete dir="${user.dir}${classes}
czsc"/>
       <delete file="${user.dir}${classes}log4j.properties"/>
   </target>
    
   <target name="bulid.common" depends="clean">
           <echo message="COMPILE COMMON CLASS..."/>
       
           <mkdir dir="${user.dir}${classes}util"/>
        <javac includeantruntime="false" nowarn="on"   
            source="1.6" target="1.6" deprecation="true" debug="true"   
            encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srcutil" destdir="${user.dir}${classes}">
            <compilerarg line="-Xlint:unchecked" />
            <compilerarg line="-encoding UTF-8"/>
        </javac> 
    
        <mkdir dir="${user.dir}${classes}vo"/>
        <javac includeantruntime="false" nowarn="on"   
            source="1.6" target="1.6" deprecation="true" debug="true"   
            encoding="UTF-8" classpathref="project.classpath" srcdir="${user.dir}srcvo" destdir="${user.dir}${classes}">
            <compilerarg line="-Xlint:unchecked" />
            <compilerarg line="-encoding UTF-8"/>
        </javac>     
    
        <mkdir dir="${user.dir}${classes}common"/>
        <javac includeantruntime="false" nowarn="on"   
                       source="1.6" target="1.6" deprecation="true" debug="true"   
                       encoding="UTF-8" classpathref="project.classpath"  srcdir="${user.dir}srccommon" destdir="${user.dir}${classes}">
                   <compilerarg line="-Xlint:unchecked" />
                   <compilerarg line="-encoding UTF-8"/>
        </javac>  
   </target>
    
   <target name="build.proj" depends="bulid.common">
      <echo message="COMPILE PROJECT..."/>
         <mkdir dir="${user.dir}${classes}com"/>
         <javac includeantruntime="false" nowarn="on"   
            source="1.6" target="1.6" deprecation="true" debug="true"   
            encoding="UTF-8" classpathref="project.classpath" 
               srcdir="${user.dir}srccom" destdir="${user.dir}${classes}">
               <compilerarg line="-Xlint:unchecked" />
               <compilerarg line="-encoding UTF-8"/>
      </javac>
          
        <mkdir dir="${user.dir}${classes}config"/>
        <copy todir="${user.dir}${classes}config">  
           <fileset dir="${user.dir}srcconfig">  
           </fileset>  
        </copy> 
    
           <mkdir dir="${user.dir}${classes}export"/>
        <javac includeantruntime="false" nowarn="on"   
                source="1.6" target="1.6" deprecation="true" debug="true"   
                encoding="UTF-8" classpathref="project.classpath"  srcdir="${user.dir}srcexport" destdir="${user.dir}${classes}">
            <compilerarg line="-Xlint:unchecked" />
            <compilerarg line="-encoding UTF-8"/>
        </javac>
           
        <mkdir dir="${user.dir}${classes}
czsc"/>
        <javac includeantruntime="false" nowarn="on"   
                source="1.6" target="1.6" deprecation="true" debug="true"   
                encoding="UTF-8" classpathref="project.classpath"  srcdir="${user.dir}src
czsc" destdir="${user.dir}${classes}">
            <compilerarg line="-Xlint:unchecked" />
            <compilerarg line="-encoding UTF-8"/>
        </javac>
   </target>
   <target name="copy.tomcat" depends="build.proj">
        <echo message="COPY FILE TO TOMCAT..."/>
        <copy todir="${tomcat.dir}webapps
czsc">  
           <fileset dir="${user.dir}WebRoot">  
           </fileset>  
        </copy> 
  </target>
    
    <path id="project.classpath">  
        <fileset dir="${project.dir}${lib.dir}">  
            <include name="***.jar" />  
        </fileset>  
        <fileset dir="${tomcat.dir}/lib">  
            <include name="*.jar" />  
        </fileset>  
        <fileset dir="${ant.dir}">  
            <include name="***.jar" />  
        </fileset>
    </path>  
</project>

build.propertes文件中主要用来设置在build文件中引用的变量,以便重复利用。

author=yookoo
project=nczsc
project.dir=D:\vs\050 u533Au57DFu75BEu63A7\095 u8111u5352u4E2Du7B5Bu67E5u7CFBu7EDF\05 u6E90u4EE3u7801\01nczsc
classes=WebRoot\WEB-INF\classes
lib.dir=WebRoot\WEB-INF\lib
tomcat.dir=C:\Program Files\Apache Software Foundation\Tomcat 6.0
ant.dir=C:\Program Files\Apache Software Foundation\apache-ant-1.9.7

最后,将build文件加入ant中。

然后点击双击ant中的build.proj启动程序。

原文地址:https://www.cnblogs.com/hoaprox/p/6393916.html