1、编译 .java 文件,生成 .jar 包,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="jar">
<!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
<fileset id="src.path" dir="src">
<!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
<include name="**/*.*"/>
<!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
<exclude name="**/Test*"/>
</fileset>
<target name="init">
<delete dir="build"/>
<!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
<mkdir dir="build"/>
<mkdir dir="build/src"/>
<mkdir dir="build/classes"/>
<mkdir dir="build/dist"/>
</target>
<!-- depends表示依赖的目标 -->
<target name="copySrc" depends="init">
<!-- todir 表示目标目录 -->
<copy todir="build/src">
<!-- 通过 refid 可以引用外部标签 -->
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="copySrc">
<!-- 编译 -->
<javac destdir="build/classes" srcdir="src"/>
</target> <target name="jar" depends="compile">
<!-- 打包 -->
<!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
<jar destfile="build/classes/hello.jar" basedir="build/src"/>
</target>
</project>

2、在生成的 .jar 文件中的 MANIFEST.MF 文件中添加属性,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="jar">
<!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
<fileset id="src.path" dir="src">
<!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
<include name="**/*.*"/>
<!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
<exclude name="**/Test*"/>
</fileset>
<target name="init">
<delete dir="build"/>
<!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
<mkdir dir="build"/>
<mkdir dir="build/src"/>
<mkdir dir="build/classes"/>
<mkdir dir="build/dist"/>
</target>
<!-- depends表示依赖的目标 -->
<target name="copySrc" depends="init">
<!-- todir 表示目标目录 -->
<copy todir="build/src">
<!-- 通过 refid 可以引用外部标签 -->
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="copySrc">
<!-- 编译 -->
<javac destdir="build/classes" srcdir="src"/>
</target> <target name="jar" depends="compile">
<!-- 打包 -->
<!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
<jar destfile="build/classes/hello.jar" basedir="build/src">
<!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 -->
<manifest>
<!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class -->
<attribute name="Mina-class" value="com.learn.ant.HelloWorld"></attribute>
<attribute name="BuildBy" value="hwl"></attribute>
</manifest>
</jar>
</target>
</project>

3、执行 .jar 文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<!-- fileset数据类型定义了一组文件 dir表示fileset 的基目录 -->
<fileset id="src.path" dir="src">
<!-- include 是用逗号分隔的,需要包含的文件模式列表 -->
<include name="**/*.*"/>
<!-- excludes 是用逗号分隔的需要派出的文件模式列表 -->
<exclude name="**/Test*"/>
</fileset>
<target name="init">
<delete dir="build"/>
<!-- mkdir标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名 -->
<mkdir dir="build"/>
<mkdir dir="build/src"/>
<mkdir dir="build/classes"/>
<mkdir dir="build/dist"/>
</target>
<!-- depends表示依赖的目标 -->
<target name="copySrc" depends="init">
<!-- todir 表示目标目录 -->
<copy todir="build/src">
<!-- 通过 refid 可以引用外部标签 -->
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="copySrc">
<!-- 编译 -->
<javac destdir="build/classes" srcdir="src">
<compilerarg line="-encoding UTF-8"/>
</javac>
</target> <target name="jar" depends="compile">
<!-- 打包 -->
<!-- destfile表示JAR文件名 basedir表示被归档的文件名 -->
<jar destfile="build/dist/hello.jar" basedir="build/classes">
<!-- manifest标签往META-INF/MANIFEST.MF文件中添加属性 -->
<manifest>
<!-- 如果 jar 可以运行,需要在META-INF/MANIFEST.MF文件中添加Mina-class -->
<attribute name="Main-class" value="com.learn.ant.HelloWorld"></attribute>
<attribute name="BuildBy" value="hwl"></attribute>
</manifest>
</jar>
</target> <target name="execute" depends="jar">
<!-- 编译 -->
<echo>基于类路径的classname来完成执行</echo>
<java classname="com.learn.ant.HelloWorld" classpath="build/classes">
<!-- 参数 -->
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java> <echo>基于jar文件完成执行</echo>
<!-- fork="true" 表示基于jdk的环境类执行 -->
<java jar="build/dist/hello.jar" fork="true">
<!-- 参数 -->
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>

Ant学习---第三节:使用Ant实现一个最小的项目编译的更多相关文章

  1. 【转】Ant学习笔记——自己构建Ant编译环境

    自从年初开始用NetBeans6.0,才接触到Ant. 这是今年6月份的一篇Ant学习笔记.安装 1.下载并构建环境.   去官网下载src包和bin包.解压缩它们到同一目录,运行build.bat, ...

  2. Ant学习---第二节:Ant添加文件夹和文件夹集的使用

    一.创建 java 项目(Eclipse 中),结构图如下: 1.创建 .java 文件,代码如下: package com.learn.ant; public class HelloWorld { ...

  3. Ant学习---第一节:Ant安装和简单使用

    一.下载 ant 插件,路径如下: http://ant.apache.org/bindownload.cgi 二.安装 ant 插件,解压下载下来的 ant 插件,配置环境变量(最好系统环境变量), ...

  4. beego学习笔记一:创建第一个beego Web项目 转

    前提工作 环境搭建,可以参考如下两篇教程:搭建Go语言环境1搭建Go语言环境2 安装beego beego 的安装是典型的 Go 安装包的形式: go get github.com/astaxie/b ...

  5. Ant学习实例

    ant   目录(?)[+] Ant学习实例 安装Ant 基础元素 project元素 target元素 property元素 完整示例   Ant学习实例 1.安装Ant 先从http://ant. ...

  6. 用IntelliJ IDEA学习Spring--创建一个简单的项目

    这段时间想学习一下Spring,其实之前学过Spring,只是有些忘记了.而且之前学的时候是适用eclipse学习的,现在好像对IntelliJ这个工具使用挺多的,现在就学习一下这个工具的用法,顺便复 ...

  7. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  8. Ant学习笔记(1) 基础知识

    Ant Apache Ant 是一个基于 Java的构建工具. 下载Ant google.baidu.Windows用户下载zip格式.解压即可. Windows安装Ant Ant本质上是一个Java ...

  9. Ant学习笔记

    前言:这段时间在学习Ant,发现这是一个很强大的构建工具.你可能使用了很长一段时间,才发现Ant能做数不完的事.总之,个人觉得,Ant学习门槛低,入门简单,能大概看懂程序,写一些简单的脚本即可,剩下在 ...

随机推荐

  1. logcat保存当前应用程序的日志并上传服务器或指定邮箱

    给大家分享一个项目中用到的日志统计并提交服务器的日志工具类.通过过得当前app的PID,采用命令行的方式实用logcat工具过滤日志.代码区: package org.and.util; import ...

  2. linux系统下将php和mysql命令加入到环境变量中的方法

    在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行 “php -v”命令查看当前php版本信息时时 ...

  3. Linux ed命令

    $ ed              <- 激活 ed 命令  a                 <- 告诉 ed 我要编辑新文件  My name is Titan. <- 输入第 ...

  4. C#使用结构来传递多个参数

    当参数超过5个时,建议用结构来传递多个参数. 示例代码如下: public struct MyStruct { public string str; public int number; } clas ...

  5. 配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考)

    本文拟定是在一个局域网内(比如一个Hadoop集群)设定一台NTP服务器作为整个网络的标准时间参考,使用网络(集群)内的所有机器保持时间一致!以下是详细的操作步骤: 1. 修改选定的服务器的本地时间 ...

  6. 用过的一些js函数[备份用的]

    1.类似php的htmlspecialchars函数,如需要可以自行增加其它代替 function _htmlspecialchars(str) { str = str.replace(/&/ ...

  7. (转)Android L Ripple的使用

    声明:Demo并不是有本人所写,本人只是总结在这里 工程源码: RippleDemo.zip ---------------------------------------------------- ...

  8. 区间 (vijos 1439) 题解

    [问题描述] 现给定n个闭区间[ai,bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照区间的升序排 ...

  9. 获取月份对应的day

    function getDaysInMonth(month, year) { , , , , , , , , , , , ]; //主要处理二月份的天数 ) && (year % == ...

  10. N进制数组转换成正整数

    给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数 //把数组中的元素按照N进制转换成为正整数 #include <stdio.h> #include <std ...