ant的讲解

来源:互联网 发布:2017年新出的网络剧 编辑:程序博客网 时间:2024/04/30 12:12

ant是构建工具  相似的工具就是:maven 、gradle、make等等。

2、什么是构建 
概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个。
(代码文件进行集合、编译、运行、安装等等工作)


3,ant的好处 和make来对比
跨平台 、 使用简单、语法清晰、功能强大。

make更多应用于c/c++ ,ant更多应用于Java。

二、ant的实例应用
目标:
编写一些程序
编译它们
把它打包成jar包
把他们放在应该放置的地方
运行它们

代码示例:
一个简单的程序HelloWorld.java如下:

package test.ant;
public class HelloWorld{
public static void main(String[] args){
   System.out.println("Hello world1");
}
};




2,上面的目标,你可以手动的用javac 、copy 、jar、java来完成。
若是有成百上千个类,在多次调试,部署的时候,一次次的javac 、copy、jar、
java那将是一份辛苦的工作。
但是我们可以使用ant来实现它。
要运行ant需要有一个build.xml(创建一个xml文件,不一定去这个名字)。

//build.xml代码
<?xml version="1.0" encoding="UTF-8" ?>   //版本
<project name="HelloWorld" default="run" basedir=".">   
//name 取得名字 ,  basedir 工作的根目录,“.” 代表当前目录 default代表默认要做的事情,这里是要执行。
<property name="src" value="src"/>  
//类似程序中的变量,就是build.xml中文件的属性
<property name="dest" value="classes"/>  
<property name="hello_jar" value="hello1.jar"/>  


<target name="init">  
   <mkdir dir="${dest}"/>  
</target>  
//初始化的时候,直接将目录设置为当前的文件,这样ant生成的文件就在目标的目录下,所以我们可以不用拷贝的操作


<target name="compile" depends="init">  
   <javac srcdir="${src}" destdir="${dest}"/>  
</target> 
 //想做的每一件事情都是写成一个target ,depends 是它所依赖的target
 执行compile的target之前,先执行了init,再执行compile;
 若是没有知心init,就会执行依赖限制性init。


<target name="build" depends="compile">  
   <jar jarfile="${hello_jar}" basedir="${dest}"/>  
</target>  
//建立一个jar的包,依赖是先编译


<target name="run" depends="build">  
   <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>  
</target> 
//运行,先要有建立打包成jar的包


<target name="clean">  
   <delete dir="${dest}" />  
   <delete file="${hello_jar}" />  
</target>  
//删除生成的文件


<target name="rerun" depends="clean,run">  
   <ant target="clean" />  
   <ant target="run" />  
</target>  


</project>


ps:
<project name="HelloWorld" default="run" basedir=".">  
</project>  
ant的所有内容必须包含在这个里边。




为了不用拷贝,我们可以在最开始定义好目标文件夹,这样ant直接把结果就放在目标文件夹中了  
<target name="init">  
<mkdir dir="${dest}"/>  
</target>  


注意目录的存放
(相应的截图)


在.xml文件的目录下执行ant target name (这里是:ant  build)  命令就好。

代码:

build.xml的代码:

<?xml version="1.0" encoding="UTF-8" ?>  <project name="HelloWorld" default="run" basedir=".">  <property name="src" value="src"/>  <property name="dest" value="classes"/>  <property name="hello_jar" value="hello1.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="${hello_jar}" basedir="${dest}"/>  </target>  <target name="run" depends="build">     <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>  </target>  <target name="clean">     <delete dir="${dest}" />     <delete file="${hello_jar}" />  </target>  <target name="rerun" depends="clean,run">     <ant target="clean" />     <ant target="run" />  </target>  </project>  


HelloWorld.java 的代码:

package test.ant; public class HelloWorld{public static void main(String[] args){   System.out.println("Hello world1");}};


总结:上面可以知道,我们使用ant实现了集成的类文件进行编译和执行。
却是和make是很相似,make在c++中经常也是使用来进行编译和安装。


什么情况使用ant?即为使用ant比eclipse+其他组合便利。优点
1,服务器上部署的时候
由于ant小巧,将写好的build.xml到任何一台服务器上,只需要做简单的修改(一些设定,例如目录),然后一两个命令完成。
2、ant是跨平台的,所以在window和linux/unix 之间的切换,使用这个配置就好。
3、服务器维护者不懂的编程,也就是简单易用。


ant的进一步的使用;
不同的模块之间进行整合和编译。
1,自己重新写一个build.xml ,这将是一个麻烦的事情
2,尽量利用他们已经写好的build.xml,减少自己的工作
参考链接:
http://www.cnblogs.com/huozhicheng/archive/2010/04/08/2533199.html
(的下半部分)

0 0
原创粉丝点击