ant入门程序
一. 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入门程序的更多相关文章
- Ant入门
一.Ant介绍 Ant是Java的生成工具,是Apache的核心项目:直接在apache官网下载即可: Ant类似于Unix中的Make工具,都是用来编译.生成: Ant是跨平台的,而Make不能: ...
- mybatis入门_mybatis基本原理以及入门程序
一.传统jdbc存在的问题 1.创建数据库的连接存在大量的硬编码, 2.执行statement时存在硬编码. 3.频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源. 4.存在大量的 ...
- 1.struts2原理和入门程序
Struts2是一个MVC的Web应用框架,是在Struts1和WebWork发展起来的,以WebWork为核心,采取拦截器机制来处理用户请求. 原理图: 分析步骤: 1.用户发送一个请求 2.请求的 ...
- springMVC2 1入门程序
1入门程序 .1需求 实现商品列表查询 .2需要的jar包 使用spring3.2.0(带springwebmvc模块) .1前端控制器 在web.xml中配置: <?xml version=& ...
- struts2入门程序
struts2入门程序 1.示例 搭建编程环境就先不说了,这里假设已经搭建好了编程环境,并且下好了strut2的jar包,接下来程序. 1.1 新建web项目 点击File->New->D ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...
- springmvc(一) springmvc框架原理分析和简单入门程序
springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...
- python web入门程序
python2.x web入门程序 #!/usr/bin/python # -*- coding: UTF-8 -*- # 只在python2.x 有效 import os #Python的标准库中的 ...
- Maven01——简介、安装配置、入门程序、项目构建和依赖管理
1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse maven量级 1.2 Maven好处 同 ...
随机推荐
- Extjs gridPanel 动态指定表头
var colMArray = new Array(); colMArray = [{header : "产品代码", dataIndex : "cpdm", ...
- @Java中使用Jedis操作Redis之一
依赖的jar包:jedis <dependency> <groupId>redis.clients</groupId> <artifactId>jedi ...
- 3D屏保:排色榜
3D屏保:排色榜 排色榜,是一个针对图形学中的色彩进行排序的DEMO,这里的色是色彩的意思,看成别的点进来的同学请自觉面壁.该DEMO可以按RGB,GBR,BRG,灰度值四种方式进行排序.排序算法为冒 ...
- UVA 400 (13.08.05)
Unix ls The computer company you work for is introducing a brand new computer line and is developi ...
- Python操作Excel表格,xlwt模块的使用
Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) 按照模块使用pip install xlwt 就行了,很常规的方式 直接进代码解析,本文源码 w ...
- 你应该了解的CSS语义化命名方式及常用命名规则
CSS语义化命名 从上图我们可以大概看出这里有两种CSS的命名方式:1.结构化命名法:2.语义化命名法. 结构化命名法:根据页面中板块的位置而命名,如上图中的content-left,这时如果我们想把 ...
- Redis自学笔记–Zset类型及管理简述
Zset类型 ...
- 如何使用动画和精灵表单 Cocos2d-x 2.1.4
本文实践自 Ray Wenderlich.Tony Dahbura 的文章< How to Use Animations and Sprite Sheets in Cocos2D ...
- (转)Unity3D Android手机开发环境配置,可真机发布调试
此方法配置好,在可以在unity直接发布到手机上,并可以实时调试. 1.配置eclipse环境:首先在官网下载安装包:http://developer.android.com/sdk/index.ht ...
- 【pyhon】理想论坛爬虫1.08
#------------------------------------------------------------------------------------ # 理想论坛爬虫1.08,用 ...