使用Ant发布web应用到tomcat

来自:http://blog.csdn.net/hbcui1984/article/details/1954537

今天在公司用ant写了个部署web应用的脚本,闲来无事,就稍微总结一下,以供以后参照使用,也希望作为一个demo, 能对大家有启迪的作用,如果真的如此,我也就很是欣慰了。

好了,言归正传,下面就开始记流水账吧。

一.Ant简介

Ant是一种基于java的build工具,有些类似于unix系统中的make命令,Ant是Apache软件基金会Jakarta目录中的一个子项目,具有跨平台性,操作简单。。等特点。

这里就不说这些老套的话了,大家知道就是一种build工具就可以了,具体有什么用和怎么用,我们稍后说明。

二.Ant的主要标签及数据类型

Ant构建文件是一个xml文件,一般默认命名为build.xml,如果是web project,通常把构建文件放在顶层目录下,即和src文件夹并列。

一个Ant构建文件需要定义一个唯一的项目元素(project元素),还可以定义多个目标元素(target元素),各个目标元素之间可以有一定的依赖关系,如:

<target name="compile">
<target name="deploy" depends="compile">

如上,deploy依赖与compile,即:系统必须先compile完了,然后才能deploy。

下面简要介绍一下Ant的主要标签:

1.<project>标签
 每个构建文件对应一个项目。<project>标签是构建文件的根标签。它可以有多个内在属性,其各个属性的含义分别如下:
(1) default表示默认的运行目标,这个属性是必须的。
(2) basedir表示项目的基准目录。
(3) name表示项目名。
(4) description表示项目的描述。

2.<target>标签
Target的常用属性如下。
(1).name表示目标名称,这个属性是必须的。
(2).depends表示依赖的目标。
(3)if表示仅当属性设置时才执行。
(4)unless表示当属性没有设置时才执行。
(5)description表示项目的描述。
Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。

3.<mkdir>标签
该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名。

4<jar>标签
该标签用来生成一个JAR文件,其属性如下。
(1) destfile表示要生成的JAR文件名。
(2) basedir表示被归档的文件名。
(3) includes表示需要归档的文件模式。
(4) exchudes表示被排除的文件模式。

5.<javac标签>
该标签用于编译一个或一组java文件,其属性如下。
(1).srcdir表示源程序的目录。
(2).destdir表示class文件的输出目录。
(3).include表示被编译的文件的模式。
(4).excludes表示被排除的文件的模式。
(5).classpath表示所使用的类路径。
(6).debug表示包含的调试信息。
(7).optimize表示是否使用优化。
(8).verbose 表示提供详细的输出信息。
(9).fileonerror表示当碰到错误就自动停止。

6.<java>标签
该标签用来执行编译生成的.class文件,其属性如下。
(1).classname 表示将执行的类名。
(2).jar表示包含该类的JAR文件名。
(3).classpath所表示用到的类路径。
(4).fork表示在一个新的虚拟机中运行该类。
(5).failonerror表示当出现错误时自动停止。
(6).output 表示输出文件。
(7).append表示追加或者覆盖默认文件。

7.<delete>标签
该标签用于删除一个文件或一组文件,其属性如下。
(1)/file表示要删除的文件。
(2).dir表示要删除的目录。
(3).includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
(4).failonerror 表示指定当碰到错误是否停止,默认值是自动停止。

8.<copy>标签
该标签用于文件或文件集的拷贝,其属性如下。
(1).file 表示源文件。
(2).tofile 表示目标文件。
(3).todir 表示目标目录。
(4).overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
(5).includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
(6).failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。

如果我们部署一个 web应用的话,经常用到的标签有:delete,mkdir,copy,jar,target,project。

三.使用Ant发布web应用到tomcat

下面我们以一个简单的例子,来演示如何使用Ant发布web应用到tomcat。我们假设有个很简单的web projcet,我们想使用Ant来将服务部署到tomcat,假设在web project的根目录下有个build.xml文件,我们可以如此编辑该构建文件。

<project name="demo" basedir=".">
                      <!--定义tomcat所在目录-->
    <property name="webapp" value="D:/tomcat/webapps/ROOT" />
    <target name="core">
        <!--删除原来部署的文件-->
        <delete dir="${webapp}"></delete>
        <mkdir dir="${webapp}" />
                                           <!--将编译后的文件拷贝到tomcat目录下-->
        <copy todir="${webapp}" overwrite="true">
            <fileset dir="${basedir}/WebRoot"/>
        </copy>
    </target>
</project>

完事了?yes!非常简单!当然,如上代码的前提是:在eclipse+Myeclipse环境下开发,并且将自动编译开关开开,这样我们只需要将编译好的文件拷贝到tomcat目录下即可,如果不是在这种环境下开发,我们可能就需要先使用javac命令编译一下,然后再拷贝到tomcat目录下。

如果我们想把该web project中的java文件打成jar包,放置在WEB-INF/lib目录下,将其他文件拷贝到tomcat/webapps目录下,我们可以使用如下构建文件:

<project name="demo" basedir=".">
    <property name="webapp" value="D:/tomcat/webapps/ROOT" />
    <target name="core">
        <!--删除原来部署的文件-->
        <delete dir="${webapp}"></delete>
        <mkdir dir="${webapp}" />
<!--除了class文件外,其他文件拷贝到tomcat目录下-->
        <copy todir="${webapp}" overwrite="true">
            <fileset dir="${basedir}/WebRoot" excludes="**/*.class"/>
        </copy>
<!--将class文件打包,放到/WEB-INF/lib目录下-->
        <jar destfile="${webapp}/WEB-INF/lib/test.jar">
            <fileset dir="${basedir}/WebRoot/WEB-INF/classes">
                <include name="**/*.class" />
            </fileset>
        </jar>
    </target>
</project>

怎么样?我们上面用到了copy,delete,mkdir,fileset,include,excludes这些标签,你可明白?

使用Ant发布web应用到tomcat的更多相关文章

  1. Maven发布web项目到tomcat

    在java开发中经常要引入很多第三方jar包:然而无论是java web开发还是其他java项目的开发经常会由于缺少依赖包引来一些不必要的异常.常常也是因为这样的原因导致许多简单的缺包和版本问题耗费大 ...

  2. 通过开发工具发布web应用到tomcat服务器中--对于小白,大神可以忽略不看,勿喷,谢谢

    需要的工具 MyEclipse和TomCat 本人用的是MyEclipse2014和TomCat7 TomCat结构图 第一步:在MyEclipse中配置TomCat 如图所示: 第二步:创建Web项 ...

  3. idea发布web项目在tomcat位置问题

    (1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布. (2)war exploded模式是直接把文件夹.jsp页面 .classes等等移到Tomcat 部署文件夹里面 ...

  4. 阿里云linux镜像发布web项目时候 tomcat与域名映射

    tomcat 与 域名映射 一  准备工作: 阿里云服务器Linux镜像 及 域名备案和将域名解析至服务器,通过<暂不说,网上一大把或者参考阿里官方实例手册> 在Linux镜像中安装tom ...

  5. 使用 Jenkins 发布 web 应用至 Tomcat

    Jenkins 的安装:https://www.cnblogs.com/jhxxb/p/11406805.html 发布流程:Git -> Maven -> Tomcat 一.基本环境 G ...

  6. eclipse中tomcat使用add and remove无法发布web项目

    继上次启动eclipse中的tomcat报classNotFound的问题后,这次又遇到新问题.就是右键点击tomcat使用add and remove发布web项目至tomcat后,启动tomcat ...

  7. 2.Android网络编程-web介绍以及Tomcat安装使用

    1.CS和BS CS:Client/Server 客户端和服务器,这种软件往往需要安装.比如QQ.迅雷.播放器. 优点 :  可以减轻服务器端压力,将部分代码写到客户端,并且界面很美观. 缺点 :  ...

  8. tomcat发布web service教程

    这几天一直在准备找工作,自学了关于web service的一些基本的内容,也遇到了不少问题.现在就把我自己学到的知识和大家分享一下,由于是初学,所以有什么错误的地方请大家帮忙指正,感激不尽~~!! 1 ...

  9. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

随机推荐

  1. 上海大都会赛 I Matrix Game(最大流)

    At the start of the matrix game, we have an N x M matrix. Each grid has some balls.The grid in (i,j) ...

  2. Spring <context:annotation-config> 和 <context:component-scan> 区别

    一篇很不错的文章,看到就是赚到Get.... https://www.cnblogs.com/leiOOlei/p/3713989.html 说白了 :<context:component-sc ...

  3. c++ 中map 的find 函数用法

    Map中,find函数用来定位数据出现位置,当含有该数据,即查找成功时,返回数据所在未知的迭代器, 如果查找失败,则返回end()函数所在的迭代器,因此用是否等于end来判断是否查找成功. 程序示例: ...

  4. visual studio build and rebuild 的区别

    build 只编译发生改变的dll, (如下, 我只修改了web API,build的时候, 只有webAPI.dll发生更新) rebuild = clean + build (如下, 本项目中dl ...

  5. 数据库存储 datetime,时差问题

    var offset = moment().utcOffset(); var localText = moment.utc(datetime from database).utcOffset(offs ...

  6. springmvc中的拦截器interceptor用法

    1.配置拦截器 在springMVC.xml配置文件增加: 1 <mvc:interceptors> 2 <!-- 日志拦截器 --> 3 <mvc:intercepto ...

  7. springmvc.xml,context.xml和web.xml

    1:springmvc.xml配置要点 一般它主要配置Controller的组件扫描器和视图解析器 下为:springmvc.xml文件 <?xml version="1.0" ...

  8. Query to find the eligible indexes for rebuilding

    Query to find the eligible indexes for rebuilding The following script can be used to determine whic ...

  9. vue路由权限之访问权限(meta控制是否有访问权限)

    首先登录那权限表 router.beforeEach((to, from, next) => { if(to.path === '/login') { next(); }else{ if(!st ...

  10. 搭建FTP服务器 window7

    1.安装IIS组件,打开控制面板-->程序和功能,点击打开或关闭windows功能 找到Internet信息服务,勾选FTP服务器和Web管理工具下的IIS管理控制台进行安装ftp,如图所示 2 ...