一. 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. Android中关于项目中对Thread的管理(不是线程池)

    背景 项目中对于一些并不复杂的耗时操作,比如计算,不频繁操作数据库等,因为没必要使用线程池,所以之前项目会直接使用new Thread的方式,时间一长,回头再看,原来new Thread之处已经很多了 ...

  2. [翻译] Fast Image Cache

    https://github.com/path/FastImageCache Fast Image Cache is an efficient, persistent, and—above all—f ...

  3. Mac 卸载MySql的方法

    sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM su ...

  4. ngx_lua实现登录逻辑

    最近在公司做一个简单的portal,本来很简单的,只用ngx_lua就可以实现所有的业务逻辑,不需要upstream上游服务.但被要求接入公司内部的用户校验系统,说白了就是一个登录过程,只允许公司内部 ...

  5. @JVM垃圾收集器种类

    为什么要分代 之所以采用分代垃圾收集机制是因为不同的对象生命周期是不一样的.因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率. 在Java程序运行的过程中,会产生大量的对象,其中有些对 ...

  6. [7] 金字塔(Pyramid)图形的生成算法

    顶点数据的生成 bool YfBuildPyramidVertices ( Yreal width, Yreal length, Yreal height, YeOriginPose originPo ...

  7. uva 10160 Servicing Stations(DFS+剪枝)

    Servicing stations A company offers personal computers for sale in N towns (3 <= N <= 35). The ...

  8. 关于asp.net页面缓存

    1,ASPX页面缓存 页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam=&q ...

  9. iOS开发-UIWebView加载本地和网络数据

    UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置 ...

  10. iOS开发-Xcode入门ObjC程序

    元旦三天假跟妹子冷战一天半,剩下的半天觉得无聊,可以写点东西,折腾了下xCode 6.1,虽然iPhone6比较丑,但是不影响IOS在高端机上面的地位,ObjC是扩充C的面向对象编程语言.主要使用于M ...