第四天 我为集成平台狂-犀利严谨的Ant(二)

        3月1日,阴天。今天周六,休息今年冬天干旱,雾霾频发,发火好在从初六开始,“风雨送春归,飞雪迎春到就是雨雪小点,也难怪,“春雨贵如油”真心盼望“下得满街流,滑倒解学士,笑坏一群牛”大笑

          书接上回,列位看官最急于想知道如何使用单独的Ant来编译和运行java程序,且看如下分解:

           三、利用Ant构建和部署Java工程

            第一步,把示例工程antTest,放入自定义的文件夹E:\ant_test下,如图


       第二步,工程的根目录下新建build.xml文件,如图


     build.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="javaTest" >
    <target name="clean">
       <delete dir="build"/>
    </target>

    <target name="compile" depends="clean">
       <mkdir dir="build/classes"/>
      <javac srcdir="src" destdir="build/classes" includeAntRuntime="false"/>
    </target>

    <target name="run" depends="compile">
       <java classname="edu.eurasia.HelloWorld">
           <classpath>
              <pathelement path="build/classes"/>
           </classpath>
       </java>
    </target>

	<target name="jar" depends="run">
       <jar destfile="helloworld.jar" basedir="build/classes">
           <manifest>
              <attribute name="Main-class" value="HelloWorld"/>
           </manifest>
       </jar>
    </target>
</project>
        第三步, 运行该build.xml文件,执行ant run 命令,可在控制台看到HelloWorld的main方法的输出。


        Ant采用一种灵活的方式来定义依赖关系,每个目标的定义依据的是在它在能够执行之前必须完成的其他所有目标。这是使用target元素的depends属性来实现的。

        这种方法允许执行项目任何阶段的生成过程;Ant会首先执行已定义的先决阶段。在上面的例子中,如果让Ant完成run步骤,它将判断出需要首先执行clean和compile这两个目标。clean目标不依赖其他任何目标,因此它将首先被执行,然后Ant检查compiletarget,发现它依赖clean目标;由于已经执行了后者,Ant不会再次执行它,因而开始执行compile目标,最后可以执行run任务本身,注意run的后面还有一个jar任务未被执行。

        如果使用Antjar任务生成jar文件,执行ant jar 命令,可看到在工程目录下生成了一个jarHelloWorld.jar

     注意目标出现在生成文件中的顺序并不重要:执行顺序是由depends属性唯一确定的。 

        四、使用Antwar任务打包JAVA EE Web项目

    建立一个JAVA EE Web工程,其目录结构图所示:

       其中src为源代码目录,WebRoot为各jsp存放目录,lib为工程的包目录。在antWebtest工程目录下建立了build.xml文件,该文件为该工程的Ant构件文件。 WebRoot 下建立 index.jsp 文件,如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ant打包测试</title>
</head>
<body>
	 Hello,Ant Dog!
</body>
</html>
       编写build.xml文件,其内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="antwebproject" >
    <property name="classes" value="build/classes"/>
    <property name="build" value="build"/>
    <property name="lib" value="WebRoot/WEB-INF/lib"/>
  
    <target name="clean">
       <delete dir="build"/>
    </target>

   
    <target name="compile" depends="clean">
       <mkdir dir="${classes}"/>
       <javac srcdir="src" destdir="${classes}" includeAntRuntime="false"/>
    </target>

    
    <target name="war" depends="compile">
        <war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">          
           <fileset dir="WebRoot" includes="**/*.jsp"/>         
           <lib dir="${lib}"/>          
           <classes dir="${classes}" />
       </war>
    </target>
</project>
       运行该build.xml文件,执行ant war 命令,可看到在build目录下生成了antwebproject.war文件将该war包拷贝到Tomcat的目录webapps下,运行后,完成部署。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值