第一次接触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启动程序。

ANT入门&用ANT编译java项目的更多相关文章

  1. 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq

    使用maven编译Java项目 时间 2014-07-17 17:42:37  Way Lau's Blog 原文  http://www.waylau.com/build-java-project- ...

  2. 使用 Gradle 编译 Java 项目时报错: Could not find Tools.jar

    在使用Android studio进行编译成jar的时候,遇到Gradle 编译错误,听前辈们说是jdk的版本不对,于是乎就更新了一下jdk, 然而可能是我重新安装jdk的时候改变了安装路径, 在pr ...

  3. 使用maven编译Java项目

    摘要: 综述 本文演示了用Maven编译Java项目 需要 时间:15分钟 文本编辑器或者IDE JDK 6 或者更高版本 创建项目 本例主要为了展示Maven,所以Java的项目力求简单. 创建项目 ...

  4. 命令行编译java项目

    命令行编译java项目 项目名: testproj 目录 src -> cn -> busix -> test bin lib 编译项目 cd testproj javac -d . ...

  5. Jenkins 通过 maven 构建编译 JAVA 项目环境

    Jenkins 通过maven 构建编译 JAVA 项目环境 官网下载合适Jenkins版本包: 1.jenkins http://mirrors.jenkins.io/war-stable/ 2.J ...

  6. java ----> 手动编译java项目

    环境: jdk1.8,cmd,notepad++ 创建java工程test,创建文件夹: src classes lib 说明: src 放置.java文件 classes 放置.class文件 li ...

  7. Apache Maven Cookbook(一)maven 使用命令创建、编译java项目

    一.创建 使用命令创建项目分几步: 1.打开命令行窗口,比如cmd,把目录切换至想要创建项目地方. 2.执行如下命令: mvn archetype:generate -DgroupId=com.zua ...

  8. 怎么快速入门一个老的java项目

    作者:eilen著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.有文档肯定先看文档,先看设计文档,产品的.技术的设计文档,接口文档写的好的可以看看,要是写的不好不着急看. 2 ...

  9. eclipse 编译JAVA 项目导入的WEB项目 无法编译问题

    右击你的项目 选择properties  ---->java Build Path--->Default output folder新建一个classes目录就好了 watermark/2 ...

随机推荐

  1. c#中的 virtual override 和abstract 以及sealed

    1.如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法,而不能覆盖. 2.如果父类方法加了virtual关键字,即它是一个虚方法,在子类中一样可以隐藏. 3.如果子类 ...

  2. [转]JSTL 自定义方法报错Invalid syntax for function signature in TLD.

    Apache Tomcat/6.0.18 ${my:splitApply(apply)} <function> <name>splitApply</name> &l ...

  3. 水塘抽样(Reservoir Sampling)问题

    水塘抽样是一系列的随机算法,其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况. 在高德纳的计算机程序设计艺术中,有如下问题: ...

  4. sqllocaldb 2016安装

    msiexec /i SqlLocalDB.msi /qn IACCEPTSQLLOCALDBLICENSETERMS=YES

  5. 为什么V8引擎这么快?[转]

    转载请注明出处:http://blog.csdn.net/horkychen Google研发的V8 JavaScript引擎性能优异.我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的. 作 ...

  6. Diffuse Shading——漫反射光照改善技巧

    转:http://www.narkii.com/club/thread-355113-1.html 我们会列出两种方法:使用Half Lambert lighting model(半兰伯特光照模型)和 ...

  7. js中的hasOwnProperty

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Linux内核 GPIO操作部分API

    内核中关于GPIO的操作API主要集中在<linux/of_gpio.h>和<linux/gpio.h>中,前者主要是GPIO直接与设备树相关的操作,在Linux 设备树操作A ...

  9. C# 数组转json

    ////////试题信息///////////////// // 已知 // h.d两个数组分别表示表头和内容 // 要求 // 编写函数一:rs2Array // 返回一个数组,每一项为一个对象. ...

  10. 如何获取类或属性的自定义特性(Attribute)

    如何获取类或属性的自定义特性(Attribute) 问题说明: 在ActiveRecord或者其他的ORM等代码中, 我们经常可以看到自定义特性(Attribute)的存在(如下面的代码所示) [Pr ...