使用Ant构建简单的java项目

来源:互联网 发布:网络直播怎么做 编辑:程序博客网 时间:2024/05/20 06:54

        Apache Ant主要用于Java项目的构建。为什么要使用Apache Ant来构建项目呢:

        1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件。这些工作是繁杂琐碎的,手工处理难免出错。
        2)诸如Myeclipse之类的IDE工具可以方便地部署web项目,但是脱离了这些集成工具,例如在需要部署项目的机器上没有这种集成工具或者目标机器的操作系统不支持这种工具,怎么办?这时Apache Ant是很好的工具。
        现在以一个简单的Java项目为例来说明Apache Antt的项目构建过程(项目名称test,其中src文件夹中包含源文件Test.java【0分下载测试资源】):
        第一步:Apache Ant的安装配置。如何安装Apache Ant请参见博客《Ant—如何Windows操作系统中搭建Apache Ant环境》。此外还要安装JDK,至于如何安装,请搜索百度,该配置很简单。

        第二步:解压下载下来的压缩文件,再次解压文件夹中名为“test.zip”的文件夹并将解压后的名为test的文件夹拷贝到适当的位置(这里拷贝到了C盘根目录下),此时工程目录结构如下:

        C盘

          |—test文件夹

          |            |—-src(该文件夹用于存放Java代码)

          | —其它文件或文件夹

        第三步:在test文件夹中新建名为build.xml的文件(该文件和src文件夹同级)并将下面代码拷贝到build.xml文件中:

[html] view plain copy
print?
  1. <?xml version=“1.0” encoding=“UTF-8”?>  
  2. <project name=“test” default=“run-Test” basedir=“.”>  
  3.   
  4.     <property name=“src” value=“src”/>  
  5.     <property name=“lib” value=“build/lib”/>  
  6.     <property name=“dest” value=“build/classes”/>  
  7.     <property name=“np_jar” value=“build/lib/test.jar”/>  
  8.   
  9.     <target name=“create-path”>  
  10.         <mkdir dir={dest}"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">mkdir</span><span>&nbsp;</span><span class="attribute">dir</span><span>=</span><span class="attribute-value">"{lib}”/>  
  11.     </target>  
  12.   
  13.     <target name=“create-class”>  
  14.         <javac srcdir={src}"</span><span>&nbsp;</span><span class="attribute">destdir</span><span>=</span><span class="attribute-value">"{dest}”/>  
  15.     </target>  
  16.   
  17.     <target name=“create-jar”>  
  18.         <jar destfile={np_jar}"</span><span>&nbsp;</span><span class="attribute">basedir</span><span>=</span><span class="attribute-value">"{dest}”>  
  19.            <manifest>  
  20.               <attribute name=“Main-Class” value=“Test”/>  
  21.            </manifest>  
  22.         </jar>  
  23.     </target>  
  24.   
  25.     <target name=“run-Test”>  
  26.         <java classname=“Test” classpath={np_jar}"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">target</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">target</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"clean"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">delete</span><span>&nbsp;</span><span class="attribute">file</span><span>=</span><span class="attribute-value">"{np_jar}”/>  
  27.         <delete dir={dest}"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">delete</span><span>&nbsp;</span><span class="attribute">dir</span><span>=</span><span class="attribute-value">"{lib}”/>  
  28.     </target>  
  29. </project>  
<?xml version="1.0" encoding="UTF-8"?><project name="test" default="run-Test" basedir=".">    <property name="src" value="src"/>    <property name="lib" value="build/lib"/>    <property name="dest" value="build/classes"/>    <property name="np_jar" value="build/lib/test.jar"/>    <target name="create-path">        <mkdir dir="${dest}"/>        <mkdir dir="${lib}"/>    </target>    <target name="create-class">        <javac srcdir="${src}" destdir="${dest}"/>    </target>    <target name="create-jar">        <jar destfile="${np_jar}" basedir="${dest}">           <manifest>              <attribute name="Main-Class" value="Test"/>           </manifest>        </jar>    </target>    <target name="run-Test">        <java classname="Test" classpath="${np_jar}"/>    </target>    <target name="clean">        <delete file="${np_jar}"/>        <delete dir="${dest}"/>        <delete dir="${lib}"/>    </target></project>
        上面代码说明:

        a、Ant脚本使用XML描述,其中project标签是根标签,该标签中name属性用于注明工程名称,default属性用于指定默认启动的target(即当在DOS中只输入ant并回车时所执行的命令),basedir属性用于注明工程根目录(“.”代表当前目录);

        b、property标签用于在本xml文件中定义属性及属性值,其中name属性定义属性名而value定义相应的属性值,所定义的属性在整个XML文档中都可以通过”${属性名}” 来调用;

        c、target标签用于定义ant相应的任务:create-path—初始化,创建目录,为后面的构建工作做准备;create-class—编译,生成class文件;create-jar—生成jar文件;run-Test—执行指定的Java类;clean—清除构建动作生成的文件及目录,这些任务可以通过“ant target标签中name属性值”进行调用。

        第四步、进入DOS窗口运行任务:

        a、ant create-path:该命令用于在项目(这里为test文件夹下)下创建一个build/classes目录和build/lib目录,命令执行结果如下图:


        b、ant create-class:该命令用于将指定目录中的源文件(这里指Test.java文件)全部编译,并把编译后的类文件(即class文件)放在build/classes下,命令执行结果如下图:


        c、ant  create-jar:该命令用于在build/lib下生成项目对应的jar文件,命令执行结果如下图:


        d、ant run-Test:该命令用于执行Test类,命令执行结果如下图:


        e、ant clean:该命令用于删除指定路径的文件及文件夹,命令执行结果如下图:


        至此,使用Ant构建简单Java项目试验结束。

原创粉丝点击