一. ant简单介绍

Ant是apache的一个核心项目, 它的作用是项目自己主动化构建, 由于它内置了Javac、Java、创建文件夹、拷贝文件等功能,

直接执行build.xml文件就能够编译我们的项目。

二. ant配置

1. 新建环境变量ANT_HOME: ant的解压文件夹

2. 在path中配置:%ANT_HOME%/bin;

3. 在命令行中输入ant, 假设出现 Buildfile:build.xml does not exist! Build failed 说明配置成功

三. ant入门程序

build.xml

<?xml version="1.0" encoding="GBK"?>
<project default="targetname">
<target name="name"></target>
</project>

project是生成文件的根元素, 表示一个工程

target是project的子元素, 表示一个任务, 一个project中能够定义多个target元素, 表示多个任务

default属性表示默认运行的target, 假设ant命令没有指定target, 则运行default的target

ant targetName则会运行此target, 而忽略default设置的target

四. ant编译Java项目流程

1. 创建目录

build -> 全部文件信息都保存在这个目录中

-- src -> 全部源代码信息保存在这个目录中

-- classes -> 编译好的全部文件保存在这个目录中

-- dist -> 编译好的jar文件保存在这个目录中

2. 将src中文件复制到build/src

3. 编译源代码

4. 将源代码打包成jar

5. 直接执行程序

<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<!-- 使用属性定义对应路径的时候, 使用location(会依据操作系统转换路径), 假设不是路径就使用value -->
<property name="build.dir" location="build" />
<property name="build.classes" location="${build.dir}/classes" />
<property name="build.src" location="${build.dir}/src" />
<property name="build.lib.dir" location="${build.dir}/dist" /> <!--
假设属性太多, 能够将属性放在一个外部文件里定义, 在本文件里引用
特别注意: 假设是路径就不建议在外部文件里定义, 由于此时就不会设置location的值
-->
<property file="build.properties" /> <!-- 把环境变量中的參数存放在env这个变量中 -->
<property environment="env" /> <target name="test">
<echo>${ant.home}</echo>
<echo>${ant.version}</echo>
<echo>${env.CLASSPATH}}</echo>
</target> <!--
fileset能够设定一组文件集来进行操作, dir指明文件集进行选择的路径
通过id能够指定这个文件的名称, 以下使用的时候能够直接引入
include和exclude能够设定包括和排除文件的范围
-->
<fileset id="src.path" dir="src">
<include name="**/*.*" />
<exclude name="**/Test*.java"/>
</fileset> <target name="init">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}" />
<mkdir dir="${build.classes}" />
<mkdir dir="${build.src}" />
<mkdir dir="${build.lib.dir}" />
</target> <target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src"></javac>
</target> <target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}"/>
<attribute name="Build-By" value="zhangdongping"/>
</manifest>
</jar>
</target> <target name="execute" depends="jar, copySrc">
<echo>基于类路径下的classname来完毕运行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="zhangsan" />
</java> <echo>基于jar文件运行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="liming" />
</java>
</target>
</project>

build.properties

execute.class = com.zdp.test.HelloWorld
jar.name = hello.jar

HelloWorld.java

package com.zdp.test;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello " + args[0]);
}
}

ant入门程序的更多相关文章

  1. Ant入门

    一.Ant介绍 Ant是Java的生成工具,是Apache的核心项目:直接在apache官网下载即可: Ant类似于Unix中的Make工具,都是用来编译.生成: Ant是跨平台的,而Make不能: ...

  2. mybatis入门_mybatis基本原理以及入门程序

    一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的 ...

  3. 1.struts2原理和入门程序

    Struts2是一个MVC的Web应用框架,是在Struts1和WebWork发展起来的,以WebWork为核心,采取拦截器机制来处理用户请求. 原理图: 分析步骤: 1.用户发送一个请求 2.请求的 ...

  4. springMVC2 1入门程序

    1入门程序 .1需求 实现商品列表查询 .2需要的jar包 使用spring3.2.0(带springwebmvc模块) .1前端控制器 在web.xml中配置: <?xml version=& ...

  5. struts2入门程序

    struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  7. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  8. python web入门程序

    python2.x web入门程序 #!/usr/bin/python # -*- coding: UTF-8 -*- # 只在python2.x 有效 import os #Python的标准库中的 ...

  9. Maven01——简介、安装配置、入门程序、项目构建和依赖管理

    1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse   maven量级 1.2 Maven好处 同 ...

随机推荐

  1. 算法:基于 RingBuffer 的 Queue 实现《续》

    背景 上篇实现了一个简单的队列,内部使用了 _count 计数,本文采用另外一种模式,不用 _count 计数. RingBuffer 不用 _count 计数的话,为了区分队列的满和空,需要在数组中 ...

  2. post文件的html

    <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio& ...

  3. 迭代最近点算法 Iterative Closest Points

    研究生课程系列文章参见索引<在信科的那些课> 基本原理 假定已给两个数据集P.Q, ,给出两个点集的空间变换f使他们能进行空间匹配.这里的问题是,f为一未知函数,而且两点集中的点数不一定相 ...

  4. ubuntu下如何查看软件安装目录以及安装版本

    1)aptitude show 软件名 例如aptitude show kde-runtime 显示如下 ****@ubuntu:~$ aptitude show kde-runtime 软件包: k ...

  5. Git 学习(六)分支管理

    Git 学习(六)分支管理 几乎每一种版本控制系统都支持分支.使用分支意味着你可以从开发主线上分离开来,然后不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录 ...

  6. 【BZOJ】【3671】【NOI2014】随机数生成器

    贪心 嗯……其实生成这个矩阵就是一个$O(n^2)$的模拟 = = 然后?字典序最小?贪心呗= =能选1就选1,然后能选2就选2…… 我们发现,对于矩阵(1,1)~(n,m),假设1的位置是(x,y) ...

  7. spring cloud 报错Error creating bean with name 'hystrixCommandAspect' ,解决方案

    spring cloud 升级到最新版 后,报错: org.springframework.beans.factory.BeanCreationException: Error creating be ...

  8. 九度 题目1421:Abor

    转载声明本文地址 http://blog.csdn.net/yangnanhai93/article/details/40563285 题目链接:http://ac.jobdu.com/problem ...

  9. 6. Activity life cycle

    An activity can exist in essentially three states: Resumed The activity is in the foreground of the ...

  10. 翻译记忆软件-塔多思TRADO经典教程_4

    SDL Trados是世界上最流行的计算机辅助翻译(CAT) 软件,在全球拥有20万多客户,全球500强企业有超过90%的公司都在使用SDL Trados来为日常的本地化翻译工作服务.我们的使命是以强 ...