使用Ant发布web应用到tomcat
使用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的更多相关文章
- Maven发布web项目到tomcat
在java开发中经常要引入很多第三方jar包:然而无论是java web开发还是其他java项目的开发经常会由于缺少依赖包引来一些不必要的异常.常常也是因为这样的原因导致许多简单的缺包和版本问题耗费大 ...
- 通过开发工具发布web应用到tomcat服务器中--对于小白,大神可以忽略不看,勿喷,谢谢
需要的工具 MyEclipse和TomCat 本人用的是MyEclipse2014和TomCat7 TomCat结构图 第一步:在MyEclipse中配置TomCat 如图所示: 第二步:创建Web项 ...
- idea发布web项目在tomcat位置问题
(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布. (2)war exploded模式是直接把文件夹.jsp页面 .classes等等移到Tomcat 部署文件夹里面 ...
- 阿里云linux镜像发布web项目时候 tomcat与域名映射
tomcat 与 域名映射 一 准备工作: 阿里云服务器Linux镜像 及 域名备案和将域名解析至服务器,通过<暂不说,网上一大把或者参考阿里官方实例手册> 在Linux镜像中安装tom ...
- 使用 Jenkins 发布 web 应用至 Tomcat
Jenkins 的安装:https://www.cnblogs.com/jhxxb/p/11406805.html 发布流程:Git -> Maven -> Tomcat 一.基本环境 G ...
- eclipse中tomcat使用add and remove无法发布web项目
继上次启动eclipse中的tomcat报classNotFound的问题后,这次又遇到新问题.就是右键点击tomcat使用add and remove发布web项目至tomcat后,启动tomcat ...
- 2.Android网络编程-web介绍以及Tomcat安装使用
1.CS和BS CS:Client/Server 客户端和服务器,这种软件往往需要安装.比如QQ.迅雷.播放器. 优点 : 可以减轻服务器端压力,将部分代码写到客户端,并且界面很美观. 缺点 : ...
- tomcat发布web service教程
这几天一直在准备找工作,自学了关于web service的一些基本的内容,也遇到了不少问题.现在就把我自己学到的知识和大家分享一下,由于是初学,所以有什么错误的地方请大家帮忙指正,感激不尽~~!! 1 ...
- 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)
微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...
随机推荐
- ds.Tables[0].Rows.RemoveAt(i)数据库表格删除行
不要在循环里使用myDataTable.Rows.RemoveAt(i).因为每删除一行后.i的值会增加,但行数会是减少了.这么做一定会出错.因此要遍历数据,使用Remove方式时,要倒序的遍历int ...
- [剑指Offer]58-翻转字符串
题目一 翻转单词顺序 题意 输入一个英文句子,翻转句子中的单词的顺序,但单词内自负的顺序不变.标点符号和普通字母一样处理. 例: 输入:"I am a student." 输出:& ...
- ubuntu系列-安装google浏览器
转载:http://www.linuxidc.com/Linux/2013-10/91857.htm 对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的 ...
- swift - xcode - pod升级版本和降级版本
1. 查看当前版本 pod --version 2.如果安装过pod,更新命令 新版 sudo gem install -n /usr/local/bin cocoapods --pre 旧版 sud ...
- day 22 反射,双下方法
反射: 反射:通过字符串去操作对象(类,空间等等)的属性或方法反射的四个方法 hasattr *** getattr *** setattr *** delattr *** # getattr 用法c ...
- HTML5拖拽事件笔记
在HTML5的规范中,我们可以通过为元素增加`draggable="true"`来设置此元素是否可以进行拖拽操作,其中图片.链接默认是开启的. 1. 拖拽元素:设置了`dragga ...
- 简述 OAuth 2.0 的运作流程(转)
原文地址:http://www.barretlee.com/blog/2016/01/10/oauth2-introduce/ 本文将以用户使用 github 登录网站留言为例,简述 OAuth 2. ...
- webpack.dev.conf.js
var utils = require('./utils')var webpack = require('webpack')var config = require('../config') // 一 ...
- Angular5学习札记
1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题 -使用cnpm安装的路径和使用npm安装路径不一样,解决如下: 把css路径改成"../node_modules/ ...
- Java并发-volatile的原理及用法
Java并发-volatile的原理及用法 volatile属性:可见性.保证有序性.不保证原子性.一.volatile可见性 在Java的内存中所有的变量都存在主内存中,每个线程有单独CPU缓存内存 ...
<target name="compile">