ANT入门&用ANT编译java项目

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

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

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

入门:下载并配置ant.

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

PATH:C:\Program Files\Apache Software Foundation\apache-ant-1.9.7\bin;

ANT_HOME:C:\Program Files\Apache Software Foundation\apache-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}\nczsc"/>
       <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}\src\util" 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}\src\vo" 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}\src\common" 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}\src\com" 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}\src\config">  
           </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}\src\export" destdir="${user.dir}\${classes}">
            <compilerarg line="-Xlint:unchecked" />
            <compilerarg line="-encoding UTF-8"/>
        </javac>
           
        <mkdir dir="${user.dir}\${classes}\nczsc"/>
        <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\nczsc" 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\nczsc">  
           <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 \u533A\u57DF\u75BE\u63A7\\095 \u8111\u5352\u4E2D\u7B5B\u67E5\u7CFB\u7EDF\\05 \u6E90\u4EE3\u7801\\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启动程序。

 

posted @ 2017-02-13 15:21  权杖攻城狮  阅读(694)  评论(0编辑  收藏  举报