使用builder.xml的方式;
完成的工作:打jar包并运行,其中引用了第三方jar和配置文件;

<?xml version="1.0" encoding="UTF-8"?>
<project name="InternetBusinessSurfer" default="run" basedir=".">
<property name="src" value="src"></property>
<property name="dest" value="classes" />
<property name="lib" value="lib"></property>
<property name="jarname" value="InternetBusinessSurfer.jar"></property> <target name="init" >
<mkdir dir="${dest}"></mkdir>
</target> <target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" debug="true" includeantruntime="on">
<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
</classpath>
</javac>
</target> <target name="build" depends="compile">
<jar jarfile="${jarname}" basedir="${dest}">
</jar>
</target> <target name="run" depends="build">
<java classname="com.control.Main" classpath="${jarname}">
<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
<pathelement location="${src}"></pathelement>
</classpath>
</java>
</target> <target name="clean">
<delete dir="${dest}"></delete>
</target> <target name="rerun" depends="clean,run">
<ant target="clean"></ant>
<ant target="run" ></ant>
</target> </project>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

解析:

<?xml version="1.0" encoding="UTF-8"?> //xml文件的定义
<project name="InternetBusinessSurfer" default="run" basedir=".">
</project>//ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表执行的target,必填项。
<property name="src" value="src"></property> //定义的变量,在后面的target中写物理路径也行,但不方便修改 <target name="init" > //定义name,其它target引用时使用
<mkdir dir="${dest}"></mkdir> //建立一个文件夹
</target> //一个任务

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" debug="true" includeantruntime="on">
//includeantruntime,不指定会有提示:warning: 'includeantruntime' was not set,设置引属性后ant输出ant用到的时间。eg:Total time: 1 second
<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
</classpath> //classpath是ant内置的关键字,用来指定程序编译用到的jar,即claspath。如果引用第三方jar,不设置会编译失败
</javac>
</target>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

<target name="compile" depends="init"> :depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行
过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个target

<target name="run" depends="build">
<java classname="com.control.Main" classpath="${jarname}">
<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
<pathelement location="${src}"></pathelement>
</classpath>
</java>
</target>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

加载配置文件时,下面写法会报错:

<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
<fileset dir="${src}">
<include name="*.xml"></include>
<include name="*.properties"></include>
</fileset>
</classpath>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

报错信息:Unable to obtain resource from x:\java\workspace\InternetBusinessSurfer\src\log4j.properties: java.util.zip.ZipException: error in opening zip file

解决方法是使用pathelement元素:

<classpath>
<fileset dir="${lib}" includes="*.jar"></fileset>
<pathelement location="${src}"></pathelement>
</classpath>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

以下两个target不是必须的:

<target name="clean">
<delete dir="${dest}"></delete>
</target>//删除生成的文件 <target name="rerun" depends="clean,run">
<ant target="clean"></ant>
<ant target="run" ></ant>
</target>//再次运行,在一个target里边调用其他的target
 
web项目的:
<?xml version="1.0"?>
<project name="antwebproject" default="war"basedir=".">
<property name="classes" value="build/classes"/>
<property name="build"value="build"/>
<property name="lib"value="WebRoot/WEB-INF/lib"/>
<!-- 删除build路径-->
<target name="clean">
<delete dir="build"/>
</target> <!-- 建立build/classes路径,并编译class文件到build/classes路径下-->
<target name="compile" depends="clean">
<mkdir dir="${classes}"/> <javac srcdir="src" destdir="${classes}"/>
</target> <!-- 打war包-->
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
<!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹-->
<fileset dir="WebRoot" includes="**/*.jsp"/> <!-- 拷贝lib目录下的jar包-->
<lib dir="${lib}"/>
<!-- 拷贝build/classes下的class文件-->
<classesdir="${classes}"/>
</war>
</target>
</project>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

http://reiz6153.blog.163.com/blog/static/4010891520119251583163/
http://www.cnblogs.com/xwdreamer/archive/2011/11/23/2296925.html
http://www.cnblogs.com/wufengxyz/archive/2011/11/24/2261797.html
http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html
http://www.cnblogs.com/ilahsa/archive/2012/09/07/2674733.html
http://blog.csdn.net/sunmoon631/article/details/6703949
http://www.cnblogs.com/zdz8207/p/jva-eclipse-ant.html

ant使用小结的更多相关文章

  1. ant 小结

    ant 的配置文件是xml 格式的. 其xml根元素是 project project元素下面有 property path env target filelist patternset 其中 tar ...

  2. Ant Design 使用小结

    最近公司做了一个系统,因为页面涉及的表单交互非常多,如果使用之前的 Node + Express 的开发模式效率是非常低的,因此经过考虑,最后决定使用 Node + React 的开发模式,并且使用了 ...

  3. [SonarQube]小结

    新的项目用了这个,以前从来没用过,配置了一下,看看这个到底是个什么东东. 先学习一下英文单词: sonar 声纳, qube 方盒子, 连起来应该叫声纳盒, SonarQube一看就是一个监测诊断设备 ...

  4. Maven、gradle、Ant、Eclipse IDE

    Maven.gradle.Ant.Eclipse IDE之间的关系 http://wenku.baidu.com/view/d33208810912a21615792910.html?from=sea ...

  5. pandas用法小结

    前言 个人感觉网上对pandas的总结感觉不够详尽细致,在这里我对pandas做个相对细致的小结吧,在数据分析与人工智能方面会有所涉及到的东西在这里都说说吧,也是对自己学习的一种小结! pandas用 ...

  6. mac配置--ant

    每次在新的电脑安装开发工具总是免不了下载各种软件和配置环境,本文针对mac下安装ant小结一下. 安装ant的方法很多,最直接的可以到apache-ant官网http://ant.apache.org ...

  7. 阿里开源项目之Ant Design Pro

    本篇文章主要包含的内容有三个方面. 第一.Ant Design Pro简介; 第二.Ant Design Pro能做什么; 第三.初步使用; 我相信通过这三个方面的讲解能让你大概知道Ant Desig ...

  8. Java 基础--小结

    Java  基础--小结 java基础 Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机( ...

  9. PhoneGap在Mac环境下使用问题小结

    PhoneGap在Mac环境下使用问题小结1,问题一:在执行命令phonegap run ios出现“Cordova needs ios-sim version 1.7 or greater, you ...

随机推荐

  1. java学习笔记—实现一个类MyInputStream(28)

    1 实现一个类MyInputStream读取文件,且不能抛出异常 public class TestDemo { public static void main(String[] args) thro ...

  2. docker安装配置

    ########################################## #docker安装配置 #环境centos7 #配置docker阿里源 echo '#Docker [docker ...

  3. ESXi到KVM之v2v迁移

    1.ESXi到KVM之v2v情况说明 (1).配置任务列表: 1)VMwareESXi虚拟平台下linux系统迁移到KVM虚拟平台.2)VMwareESXi虚拟平台下windows系统迁移到KVM虚拟 ...

  4. 爬虫2:urllib

        了解即可,不好用   一. 概述   python内置的http请求库,包括4个模块,分别如下   urllib.request   请求模块 urllib.error       异常处理模 ...

  5. instanceof,isinstance,isAssignableFrom,asSubclass的区别

    1,isAssignableFrom():是字节码对象的方法 是用来判断一个类的字节码对象和另一个类的字节码对象是否相同或是子类或接口. assignable英 [ə,sainəbl]美 [ə,sai ...

  6. Swift 函数提前返回

    简评:函数提前返回主要的好处是:将每个错误处理进行分离,审查代码时不需要考虑多种复杂异常,我们可以吧注意力集中在也业务逻辑中,调试代码时可以直接在异常中打断点. 提前返回 首先来看一下需要改进的代码示 ...

  7. leetcode-40-组合总和 II

    题目描述: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只 ...

  8. iOS 时区获取问题

    时区缩写 UTC, CST, GMT, CEST 以及转换 UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BI ...

  9. 4、TensorFlow基础(二)常用API与变量作用域

    1.图.操作和张量 TensorFlow 的计算表现为数据流图,所以 tf.Graph 类中包含一系列表示计算的操作对象(tf.Operation),以及在操作之间流动的数据 — 张量对象(tf.Te ...

  10. hibernate调用mysql自己手动创建函数报错

    split为自己手动在mysql中创建的函数,在hibernate调用时出错,解决方案如下: jdbc调用可以.不用改hibernate的方言. 正常的为: