利用ant进行远程tomcat部署

在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:

1.配置tomcat的用户角色

tomcat7中的用户角色有:

manager-gui — Access to the HTML interface.
manager-status — Access to the "Server Status" page only.
manager-script — Access to the tools-friendly plain text interface that is
described in this document, and to the "Server Status" page.
manager-jmx — Access to JMX proxy interface and to the "Server
Status" page.

我们要用到的是manager-script,在tomcat-users.xml 中进行配置。加入以下代码:

<role rolename="manager-script" />

<user username="用户名"
password="密码"  roles="manager-script">

2.配置Ant环境

以前在 6.0 的时候, 我们会在 classpath中加入catalina-ant.jar 包,具体操作为 :window-->preferences,左边:ant-->runtime,在右边的 classpath标签中的global entries 下加入 external jars,路径指向 tomcat_home/lib/catalina-ant.jar, 只需这一个即可,但是现在 7.0得再加几个才行:

lib/catalina-ant.jar,lib/tomcat-coyote.jar,lib/tomcat-util.jar,bin/tomcat-juli.jar

3.编写build.xml文件

<project name="工程名"
default="redeploy" basedir=".">

<!-- Configure the directory into which the web application is built
-->

<property name="build"
value="${basedir}/build"/>

<!-- Configure the context path for this application -->

<property name="path" value="/应用的名称"/>

<!-- Configure properties to access the Manager application -->

<property name="url"     
value="http://你的域名/manager/text"/>

<property name="username" value="步骤1中配置的用户名"/>

<property name="password" value="步骤1中配置的密码"/>

<!-- Configure the custom Ant tasks for the Manager application
-->

<taskdef name="deploy"   
classname="org.apache.catalina.ant.DeployTask"/>

<taskdef name="list"     
classname="org.apache.catalina.ant.ListTask"/>

<taskdef name="reload"   
classname="org.apache.catalina.ant.ReloadTask"/>

<taskdef name="findleaks"
classname="org.apache.catalina.ant.FindLeaksTask"/>

<taskdef name="resources"
classname="org.apache.catalina.ant.ResourcesTask"/>

<taskdef name="start"    
classname="org.apache.catalina.ant.StartTask"/>

<taskdef name="stop"    
 classname="org.apache.catalina.ant.StopTask"/>

<taskdef name="undeploy" 
classname="org.apache.catalina.ant.UndeployTask"/>

<!-- Executable Targets -->

<target name="compile" description="Compile web
application">

<!-- ... construct web application in ${build} subdirectory, and

generated a ${path}.war ... -->

<delete
dir="${build}"/>

<mkdir dir="${build}"/>

<war
destfile="${build}/school.war"
webxml="WebRoot/WEB-INF/web.xml">

<classes
dir="WebRoot/WEB-INF/classes">

<exclude
name="**/*.xml"/>

</classes>

<lib
dir="WebRoot/WEB-INF/lib" />

<fileset dir="WebRoot">

<include
name="**/**.*" />

<exclude
name="**/*.jar"/>

<exclude
name="**/*.class"/>

</fileset>

</war>

</target>

<target name="deploy" description="Install web
application" depends="compile">

<deploy url="${url}" username="${username}"
password="${password}" path="${path}"
war="${build}/school.war"/>

</target>

<target name="reload" description="Reload web
application" depends="compile">

<reload  url="${url}"
username="${username}" password="${password}"
path="${path}"/>

</target>

<target name="undeploy" description="Remove web
application">

<undeploy url="${url}" username="${username}"
password="${password}" path="${path}"/>

</target>

<target
name="redeploy" description="Remove and Install web
application">

<antcall
target="undeploy"/>

<antcall
target="deploy"/>

</target>

</project>

最后运行该文件,你的工程就可以部署到远程tomcat上了。

具体的说明可参考官方的文档:

http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Executing_Manager_Commands_With_Ant

时间: 2024-11-06 07:10:37

利用ant进行远程tomcat部署的相关文章

Intellij IDEA 远程debug、远程tomcat部署项目

(转)用 Maven 部署 war 包到远程 Tomcat 服务器

转自蒋国纲 www.cnblogs.com/guogangj/p/5505228.html 用Maven部署war包到远程Tomcat服务器 过去我们发布一个Java Web程序通常的做法就是把它打成一个war包,然后用SSH这样的工具把它上传到服务器,并放到相应的目录里,让Tomcat自动去解包,完成部署. 很显然,这样做不够方便,且我们在用SSH把文件拽上去的时候很可能会搞错.(当然了大厂就不会有这样的问题,因为人家有运维团队专门来干这个事情,哈哈) 现在我要的是:一行命令部署到本地服务器,

tomcat开发远程调试端口以及利用eclipse进行远程调试

一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里:  SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 Linux系统 在catalina.sh里:  CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compile

利用Tomcat部署Web项目报错

1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 八月 18, 2014 7:35:40 下午 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Apache Tomcat Native library 1.1.24 u

Maven配置一键部署远程Tomcat

1. 首先需要配置远程Tomcat的访问权限(设置访问用户名密码) http://www.cnblogs.com/liuchao102/p/5519345.html 2. 配置pom.xml 添加tomcat插件 <build> <finalName>midou-search</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId>

远程调试部署在Tomcat中的应用服务(2种配置方式)

远程调试部署在Tomcat中的应用服务(tomcat 远程debug 配置文件) 方法一(编辑catalina.bat) 1. D:\iVMS_Platform\bin\apps\ivms6-liteTomcat\bin   编辑catalina.bat文件 set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%" 替换成这样: set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%  -Xdebug -Xrun

maven自动部署到远程tomcat教程

使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

Ant入门教程之部署Java项目

Ant可以代替使用javac.java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的. 1.利用ant的javac命令来编译Java程序 Ant的javac命令用于实现编译Java程序的功能.下面来看一个简单的例子:首先我们建立名为 JavaPro的Java项目, 建立src目录为源代码目录,在src目录下建立TestAnt.java这个类文件.该类文件的内容如下: package com.home; public class TestAnt{ public sta

用Ant来做一键部署

部署Java Web项目到远程服务器上,以前经常用的操作方式: 1.在eclipse上导出项目war包 2.把war包通过ftp方式传到服务器上,比如Tomcat的webapps目录下 3.启动tomcat,自动解压war文件,生成该项目的文件夹,这时候算部署完毕 以上步骤是初次部署项目,如果项目有改动要重新部署的话,又要关闭tomcat,删除原来的项目文件夹(包括原来的war文件),然后再重复上面的步骤. 想想如果要部署的是服务器有多台,这样操作肯定要累死人了,而且很容易存在操作失误. 其实可