文档章节

Ant远程部署到Tomcat

 夜风飘尘
发布于 2016/06/21 09:13
字数 963
阅读 220
收藏 2

本文涉及的工具

Eclipse4.5.2

Ant1.9.6(Eclipse自带的插件)

jsch-0.1.53(直接点击可以打开下载页面)

具体步骤如下

1.创建build.xml文件

在项目中添加build.xml文件,build.xml是ant默认的文件名,可以修改为其他的名字,不影响Ant脚本的执行,如下图,build.xml和build-webdemo.xml都可以作为Ant脚本。

2.修改build.xml文件

可以参考下面的文件,根据具体情况修改远程主机账号密码和tomcat部署的路径

请确定远程的Tomcat中包含相应的目录,例如本例中的/opt/tomcat7/webapps/demo

不然会提示目录不存在,特别是webapps后面的路径,必须存在,如果不存在,需要先手动创建相应的文件夹,当然你也可以完善一下Ant脚本,先执行一个远程命令,创建相应的文件夹。

<?xml version="1.0" encoding="UTF-8"?>
<!--
使用该脚本是用有些前置条件。
本脚本适用于eclipse或者myeclipse环境中使用
编译文件的默认输出目录为
WebContent/WEB-INF/classes
如果不确定,可以先查看项目java build path 的default output folder

请确定项目已经build过,或者执行该ant脚本之前手动执行build

执行前,请确定是否使用jdk1.7编译的class代码

可以根据项目的名字不同,修改property里面的value值
-->
<project name="demo" default="war">

	<property name="war.name" value="${ant.project.name}"/>
	<property name="jar.name" value="${ant.project.name}-api.jar"/>
	<property name="tomcat.home" value="/opt/tomcat7"/>
	<property name="tomcat.webapps.context" value="${ant.project.name}"/>
	<property name="remote.host" value="192.168.1.110"/>

	
	<!-- 格式化时间 -->
	<tstamp>
		<format property="fdate" pattern="yyyyMMddHHmmss"/>
	</tstamp>
	
	<available file="./WebContent/WEB-INF/classes" property="pathisexit" type="dir"/>
	
	<!-- 生成war文件 -->
	<target name="war" depends="init.test">
		<delete file="${war.name}.war" />

		<war destfile="${war.name}.war" webxml="./WebContent/WEB-INF/web.xml">
			<fileset dir="./WebContent">
				<!--
				根据需要可以适当的增减文件夹,里面是一个例子,可以参考使用,如果不配置,就是默认WebContent下面的所有文件夹和文件
				<include name="WEB-INF/classes/**/*" />
				<exclude name="WEB-INF/classes/**/*.class" />
				<include name="WEB-INF/lib/**/*" />
				<include name="WEB-INF/serviceconf/**/*" />
				-->
			</fileset>
		</war>

	</target>
	
		
	<!-- 远程传输文件夹,需要添加第三方的jar文件才能支持 -->
	<target name="remote-deploy" depends="init.test">
		<scp todir="root@${remote.host}:${tomcat.home}/webapps/${tomcat.webapps.context}" password="0EY*r6Wi" trust="true">
			<fileset dir="./WebContent"></fileset>
		</scp>
	</target>
	
	<!-- 执行脚本重启tomcat
		主意tomcat.home的属性,需要配置正确的tomcat路径
	 -->
	<target name="tomcat.restart">
		<sshexec command="${tomcat.home}/bin/catalina.sh stop -force;ps -ef | grep ${tomcat.home}| grep -v grep|awk '{print $2}'|xargs kill -9;${tomcat.home}/bin/catalina.sh start" 
			host="${remote.host}" username="root" password="0EY*r6Wi"  trust="true"/>
	</target>
	
	<target name="publish">
		<!-- 先分发软件 -->
		<antcall target="remote-deploy" />
		<!-- 然后重启tomcat -->
		<antcall target="tomcat.restart" />
	</target>
	
	<!-- 备份当前文件 -->
	<target name="bakwebapp">
		<echo>cd ${tomcat.home}/webapps;tar -zcvf ${tomcat.webapps.context}.${fdate}.tar.gz ${tomcat.webapps.context}</echo>
		<!-- 执行备份语句 -->
		<sshexec command="cd ${tomcat.home}/webapps;tar -zcvf ${tomcat.webapps.context}.${fdate}.tar.gz ${tomcat.webapps.context}" 
			host="${remote.host}" username="root" password="0EY*r6Wi" trust="true"/>
	</target>
	
	<target name="init.test" unless="pathisexit">
		<fail message="classes文件夹不存在,检查你的IDE的构建路径,本脚本仅适用于IDE环境或者你手动将代码编译到classes文件夹中"/>
	</target>
	

</project>

3.测试效果

编辑完build.xml文件后,右键执行

默认执行的war,我是考虑防止第一次使用的时候误操作,直接覆盖了远程服务器的项目,如果确定远程Tomcat的目录可以直接覆盖,在publish前面勾上,然后执行就可以了。

由于依赖jsch.jar文件,所以运行的时候需要将该文件加入到ant的classpath中,见上图,

或者可以配置Ant的运行环境。

配置完之后就可以直接点击run,控制台会提示你进度,祝你好运。

4.总结

如果需要频繁部署到远程服务器,使用这个Ant的脚本还是比较好用的,轻量级,如果是大型团队可以考虑使用其他的Paas平台。

 

© 著作权归作者所有

共有 人打赏支持
粉丝 4
博文 19
码字总数 9655
作品 0
济南
程序员
私信 提问
测试服务器资料汇总

ip:192.168.1.15 域名:oschina.me 15服务器密码oschina web路径/home/oschina tomcat路径:/work/tomcat tenginx路径:/work/tenginx 安装在/usr/local/nginx jdk目录:/work/jdk ant目录:......

枯叶_听海
2016/06/29
5
0
如何使用Jacoco远程统计tomcat服务的代码覆盖率

如何使用Jacoco远程统计tomcat服务的覆盖率 在做软件开发的时候经常会遇到做各种测试,这里介绍一种本人遇到的:代码覆盖率测试, 这个测试非常实用,能发现许多无效的模块和代码。强烈推荐!...

明舞
2015/08/12
0
7
Tomcat 源码的获取与部署

目的:获取tomcat源码,部署到eclipse进而分析tomcat的架构体系。 准备工作: svn客户端下载 ant下载,环境变量path配置到ant下面的bin tomcat项目的源码地址: http://svn.apache.org/repo...

张大凡
2013/01/26
0
8
Tomcat 源码的获取与部署

目的:获取tomcat源码,部署到eclipse进而分析tomcat的架构体系。 准备工作: svn客户端下载 ant下载,环境变量path配置到ant下面的bin tomcat项目的源码地址: http://svn.apache.org/repo...

java-苦苦甜甜
2013/06/17
0
0
将tamcat7源码导入eclipse中

在网上看了很多的教程,总算弄好了,贴出来给大家分享一下 首先到ant官网http://ant.apache.org/bindownload.cgi下载ant工具然后随便解压到某个目录,将ant目录中的bin目录添加到环境变量pat...

那位先生
2015/02/12
0
4

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-13(Mybatis基本概念和简单的例子)

在mybatis初次学习Mybatis的时候,遇到了很多问题,虽然阿里云的视频有教学,但是视频教学所使用的软件和我自己使用的软件不用,我自己用的数据库是oracle数据库,开发环境是idea。而且视频中...

白话
13分钟前
1
0
Java基础:String、StringBuffer和StringBuilder的区别

1 String String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: /** The value is used for character storage. */private final cha...

watermelon11
39分钟前
2
0
mogodb服务

部署MongoDB 官网: https://www.mongodb.com/download-center/community 创建mongo数据目录 mkdir /data/mongodb 二进制部署 wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x8......

以谁为师
昨天
5
0
大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
昨天
4
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部