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. poj3020

    define     n    the number of  ' * ' define     d    the number of couple of two points define     s ...

  2. Android OptionMenu

    1.Java package com.fish.helloworld; import android.app.Activity; import android.content.Context; imp ...

  3. CSS3 图片悬浮缩放效果

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  4. s3c6410_时钟初始化

    参考: 1)<USER'S MANUAL-S3C6410X>第三章 SYSTEM CONTROLLER 2)u-boot/board/samsumg/smdk6410/lowlevel_i ...

  5. 来,让我们谈一谈Normalize.css

    本文译自 http://nicolasgallagher.com/about-normalize-css/最初发布于我的博客:http://jerryzou.com/posts/aboutNormal ...

  6. node中的流程控制中,co,thunkify为什么return callback()可以做到流程控制?

    前言 我在学习generator ,yield ,co,thunkify的时候,有许多费解的地方,经过了许多的实践,也慢慢学会用,慢慢的理解,前一阵子有个其他项目的同事过来我们项目组学习node,发现 ...

  7. Dynamic view

    Views are a useful feature of SQL databases, letting us create virtual tables based on SQL select st ...

  8. WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)

    WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同 ...

  9. 关于编程语言(转/收藏)-原文作者:韩天峰(Rango)

    原文在这里:http://rango.swoole.com/archives/405 容易让人记住的文章,要么引起共鸣,要么催人奋进.一句话,你已走过,而我也在路上. 最近群里很多朋友询问我是如何学习 ...

  10. Python科学计算利器——Anaconda

    (搬运自我在SegmentFault的博客) 最近在用Python做中文自然语言处理.使用的IDE是PyCharm.PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺.为此我尝 ...