tomcat 自动部署代码

## 系统环境
windows server2008
## 软件环境
tomcat 6 、java1.7、ant1.9.9(编译 java1.7 所需 ant 版本不能高于1.9.9)
## 安装 ant 并设置系统环境变量
[ant下载地址: http://ant.apache.org/bindownload.cgi](http://ant.apache.org/bindownload.cgi)
解压后将 bin 目录设为全局变量
## 编写 build.xml
```
<project basedir="C:/Users/Administrator/Desktop/zhonglianlaoganbu" default="antwar" name="anttest">
<target name="init" description="设置初始化打 war 包需要的路径变量">
<property name="name" value="anttest"/>
<property name="src" value="${basedir}/src"/>
<property name="lib" value="${basedir}/WebContent/WEB-INF/lib"/>
<property name="webapp" value="${basedir}/WebContent"/>

<property name="build.src" value="${basedir}/AntBuild/ROOT/src"/>
<property name="build.dest" value="${basedir}/AntBuild/ROOT/WEB-INF/classes"/>
<property name="buildwar.dest" value="${basedir}/AntBuild/ROOT"/>
<property name="jar.dest" value="${basedir}/AntBuild/jar"/>
<property name="war.dest" value="${basedir}/AntBuild/war"/>
<!-- 打包后war包的名字 -->
<property name="war.dir" value="${war.dest}/ROOT.war"/>
<path id="classpath">
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</path>
</target>
<target name="prepare" depends="init" description="创建打包需要的路径,拷贝源文件到打包路径下">
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<mkdir dir="${buildwar.dest}"/>
<mkdir dir="${jar.dest}"/>
<mkdir dir="${war.dest}"/>
<copy todir="${build.dest}">
<fileset dir="${src}"/>
</copy>
<copy todir="${build.src}">
<fileset dir="${src}"/>
</copy>
<copy todir="${buildwar.dest}">
<fileset dir="${webapp}">
<exclude name="${webapp}/WEB-INF/lib/*.jar"/>
</fileset>

</copy>
</target>
<target name="build" depends="prepare" description="编译java文件,拷贝配置文件到编译后的路径下">
<javac srcdir="${build.src}" destdir="${build.dest}" includeantruntime="false" encoding="UTF-8">
<classpath refid="classpath"/>
<compilerarg value="-XDignore.symbol.file"/>
</javac>
<copy todir="${build.dest}">
<fileset dir="${build.src}">
<include name="product.properties"/>
</fileset>
</copy>
</target>

<target name="antwar" depends="clean,build" description="打war包">
<war warfile="${war.dir}" webxml="${buildwar.dest}/WEB-INF/web.xml">
<fileset dir="${buildwar.dest}">
<exclude name="${buildwar.dest}/WEB-INF/lib/**"/>
</fileset>
</war>
</target>
<target name="clean" depends="init" description="清除打包用临时文件">
<delete dir="${build.src}"/>
<delete>
<fileset dir="${build.dest}" includes="**/*.classes"/>
</delete>
<delete dir="${buildwar.dest}"/>
</target>
</project>
```
## 编写批处理文件
### 1、拉取新代码
将 git 下的 cmd 目录 设置全局变量,方便在批处理中执行 git 命令
### 2、编译打包
在 build.xml 的同一目录下执行 ant,会自动编译并生成 .war 文件
### 3、重新部署启动 tomcat

自动部署.bat

```
@echo off
call update.bat
call start_tomcat.bat
```

update.bat

```
@echo off
echo ***** 拉取代码 *****
git pull origin master
echo ***** 编译并打包 *****
ant
```

start_tomcat.bat

```
@echo off
echo ***** stop tomcat *****
taskkill /IM %JRE_HOME%\bin\java.exe /F
del /S /Q %CATALINA_HOME%\webapps\ROOT.war
rd /S /Q %CATALINA_HOME%\webapps\ROOT
move %AntBuild_DIR%\ROOT.war %CATALINA_HOME%\webapps
echo ***** start tomcat *****
call %CATALINA_HOME%/bin/startup.bat
```
catalina.bat
set JAVA_OPTS="-Dspring.profiles.active="production""

时间: 2024-10-27 07:22:11

tomcat 自动部署代码的相关文章

在linux服务器上装svn版本管理,自动部署代码到项目

在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw3X&pos=1 http://v5sheji.com/archives/setupsvnonlinux.html 1.安装svn服务器端  yum install subversion 从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认 安装成功提示:.....complete! 依次

apache下 使用svn自动部署代码

碰到一个问题 svn不能ftp ftp又不能svn有没有一个办法把两个联系起来呢? 其实不需要svn自带的hooks(钩子)功能足以满足你得需求 svn配置和设置可以网上直接找到.直接说怎么配置自动同步功能.在svn的目录下 /www/svn/repos/hooks  有的文件 post-commit.tmpl 这个就是需要修改的文件也就是在svn有commit的时候我们需要做的 1.设置需要更新的目录 直接在配置好的首页对应的目录里面checkout一下 2.修改 post-commit.tm

【Webhooks】使用Git的Webhooks进行服务器自动部署代码

使用Git的Webhooks进行服务器自动部署代码 本文项目地址 https://github.com/diandianxiyu/PageBlog/blob/master/%E4%BD%BF%E7%94%A8Git%E7%9A%84Webhooks%E8%BF%9B%E8%A1%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81.md 如有错误,请指正~ 前言 之前一直想做自动化运

Tomcat自动部署

在tomcat中设置自动部署,可以简化工程的修改操作.有两种方法:       方法1:       打开tomcat_home/conf/server.xml文件,在<host></host>标签内输入以下内容: Xml代码<Context path="/虚拟目录名" docbase="目标目录名" reloadable="true"/> path:表示在浏览器中输入http://localhost:8080

Linux下SVN+多个Tomcat自动部署

项目中都是jsp开发,所以用到Tomcat. 在我文章中也写过多个Tomcat 的部署,具体可以参考:http://www.cnblogs.com/magmell/p/7045193.html SVN项目目录:/home/svn Tomcat访问目录:/usr/local/tomcat/多个tomcat端/webapps/ROOT 把SVN项目检出到Tomcat各个webapps下的ROOT目录中. cd /usr/local/tomcat/多个tomcat端/webapps/ROOT 检出到当

window、linux系统与linux服务器之间使用svn同步及自动部署代码的方法

摘要: 在家用PC,在公司用办公电脑对一个项目的代码进行修改时,会遇到代码同步的问题.本文讲解了代码同步及自动部署的解决办法. 实现方法: 1.首先在linux服务器上和linux上安装svn(sudo yum install svn). 2.然后在服务上创建一个版本库并配置用户及权限,这点网上的方法多的是,自行百度. 3.在linux客户端使用svn命令进行同步,具体如下: svn co svn://(ip地址)  (保存文件的文件夹)    ##检出版本库.第一次要输入用户名和密码. 将需要

jenkins + maven + svn + tomcat 自动部署

jenkins  是做什么用的,如果不知道请自行google 通俗的说  jenkins 可以帮助我们编译发布代码,比如我们提交到SVN后,要发布运行,就可以用过jenkins进行编译运行 环境(这里主要标注下我的环境): 1: SVN服务器 项目检出地址 https://192.168.1.22/svn/trunk/crm   (centos) 2: maven  私服    http://192.168.1.23:8080   (cnetos) 3: tomcat web server  h

tomcat自动部署脚本

#!/bin/bash #defined now=`date +%Y%m%d%H%M%S` TOMCAT_HOME="/usr/tomcat7/apache-tomcat-7.0.70/" TOMCAT_PORT=8080 PROJECT="$1" BACKUP_DIR="/tomcat_back/$PROJECT/$now" #param validate; if [ $# -lt 1 ]; then echo "you must u

Tomcat自动部署(洛晨的技术日记)

原因:JAVA Web 有一个很常用的容器Tomcat,但是每次修改了JAVA文件之后,洛晨我自己都要手动发布,实在不方便,第一个感觉是设置错了.在前辈的帮助下果然是配置XML写的不对. 解决方案:  <Context ... path="/" reloadable="false" ... workDir="F:\ws\docsh"/></Host> 中的false改为true,将在检测到文件修改后自动发布. 后记:上海今