相信有很多人对构建都存在很多的问题,现在我来给大家介绍一款很好的用于构建的软件ANT。
1.构建:
相信很多朋友在网上查一查都会发现很多关于构建内容的解释,在此我们再形象地重复一遍,你把代码从原位置进行编译,拷贝等操作移动到另一位置,当然这说的只是很简单的功能。
2.ANT的优势:
跨平台:因为ANT是用Java实现的,所以他可以跨几乎所有平台
使用简单:与同款软件make比较
语法清晰:同样与make比较
功能强大:ant能做太多事情了,有待大家去发现
3.ant与make:
make与ant是一类工具,但是使用范围不同,make一般用于C/C++,ant更多用于Java,当然你要是用ant用于C/C++也是没问题的。
一、搭建ant环境
- 配置Java环境,具体怎么配置Java环境大家可以去上网查一查,在网上将Java搭建的太多了
- 下载ant,官方网址:http://www.apache.org/
- 解压ant,会得到对应版本的ant包,例如:D:/ant-1.6,解压的路径最好是英文路径
- 配置ant环境,具体以我所存放的D:/ant-1.6为例,
配置环境变量:我的电脑—-属性—–高级—-环境变量,
window中设置环境变量:
ANT_HOME D:/ant-1.6
`Path ;D:/ant-1.6/bin/
classpath D:/ant-1.6/lib`
5. 测试ant是否配置好
开始–>运行–>cmd进入命令行–>键入 ant 回车,如果看到
Buildfile: build.xml does not exist!
Build failed
那么恭喜你你已经完成ant的设置
二、ant的build文件编写
1.ant的使用需要一个build.xml文件,名字可以自己修改
一个完整的build文件:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="myproject" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="jar" value="myproject.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="test.ant.myproject" classpath="${jar}"/>
</target>
<target name="clean">
<delete dir="${dest}" />
<delete file="${jar}" />
</target>
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
</project>
2.build语法
<?xml version="1.0" encoding="UTF-8" ?> build.xml中的第一句话,说明版本号和编码格式,一般没用,最好也不要改 ,默认的完全够用
<project name="myproject" default="run" basedir="."></project> build语句的所有内容必须包含在其中,name是项目的名字,basedir是工作的根目录 '.'代表当前目录。default代表默认要执行的事件。
<property name="src" value="src"/> 定义属性(变量),类似程序中的变量,跟程序中的变量作用一致
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
把你想做的每件事情都写成一个target ,它有一个名字name,depends是它所依赖的target,例如在执行这个target之前ant会先检查name为init的target是否曾经被执行过,如果执行过则开始执行compile,如果没有则会先执行name为init的target,然后再执行这个target
事件类型:
编译:
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
做jar包:
<target name="build" depends="compile">
<jar jarfile="${jar}" basedir="${dest}"/>
</target>
运行:
<target name="run" depends="build">
<java classname="test.ant.myproject" classpath="${jar}"/>
</target>
新建文件夹:
<target name="init">
<mkdir dir="${dest}"/>
</target>
删除生成的文件
<target name="clean">
<delete dir="${dest}" />
<delete file="${jar}" />
</target>
在target中调用其他的target
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
仍在持续更新…