项目介绍

使用Spring+Hibernate开发的Java Web 项目, 在Perforce上做的代码控管, 部署到Linux(Redhat)下的Tomcat服务器上。

手动部署繁琐,如果涉及文件传输有在不同网段的话, 有可能会导致部署的时间较长。

环境准备

安装包文件放在/usr/local/software下, 没有就新建此目录。

1) 安装JDK
这里使用RPM的安装包进行安装
a. 下载jdk的rpm安装包
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
b. 将jdk-7u4-linux-i586.rpm 移动到/usr/local/software
c. 给安装包赋予运行权限
chmod 755 jdk-7u4-linux-i586.rpm
d..切换到/usr/local/bin, 安装该rpm安装包
rpm   -i  /usr/local/software/jdk-7u4-linux-i586.rpm
e.设置环境变量
[root@localhost opt]# vi /etc/profile                          ;编辑系统配置文件
然后输入i ,最后增加下面内容
==================================================================================
export JAVA_HOME=/usr/java/jdk1.7.0_04
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin

2) 安装Tomcat
 Tomcat 安装到/usr/local/tomcat目录下
 a. 下载tar.gz的安装包:
 http://tomcat.apache.org/download-70.cgi  ,安装包放到 /usr/local/software下
 b.  新建目录并切换到此目录
mkdir /usr/local/tomcat
 c. 安装
 tar -zxvf /usr/local/software/apache-tomcat-7.0.54.tar.gz

3) 安装Ant
a. http://ant.apache.org 上下载tar.gz版ant
b. 放到/usr/local/software
c. 切换到/usr/local/bin
tar -vxzf /usr/local/software/apahce-ant-1.9.2-bin.tar.gz  解压

4) 安装与配置Perforce Client
这个下载就可以了,不需要安装
a.  下载p4
https://www.perforce.com/downloads/helix-command-line-client-p4

b. 将下载的文件放到/usr/local/bin,加上执行权限
chmod u+x p4

u代表所有者,x代表执行权限。 + 表示增加权限

c. 在文件 /etc/bashrc 加入环境变量
export $P4PASSWD = your password
export P4CLIENT= your P4 Client Name
export P4USER= your p4 User
export P4PORT= your P4 IP and port , as (192.168.1.198:1666)
修改后不生效的话, 执行一下source bashrc

d . 登录
命令行输入 p4 login, 接着输入密码就可以登录了

e. 修改Client
登录成功后, 命令行输入:p4 client
修改Root 和View
Root是本地代码的根路径
View 是服务端代码和本地代码的映射

5) 获取代码脚本
使用“p4 sync”就可以获取代码了, 最好是加上 -f 的选项, 强制更新代码。
要注意的是在脚本中要先进行登录。 不然的话,如果在命令行登录的Session 超时, 就会报无连接的错误了。使用如下命令行就可以达成了:
echo $P4PASSWD|p4 login

6)编译脚本
使用Ant 进行编译。
echo "Begin ant Build"
ANT_HOME=/usr/local/bin/apahce-ant-1.9.2
PATH=$PATH:$ANT_HOME/bin 
ant -version
export ANT_HOME PATH
ant
echo "End ant Build Successful!"

对于Ant来,就要配置build.xml和build.properties的文件了。

脚本参考

deploy.sh

echo "Begin Deploy"echo "stop tomcat"
sh /usr/local/tomcat/bin/shutdown.sh
echo "move old deploy"
rm -rf /usr/local/epm/deploycode/epmecho "Begin P4 Code"
echo $P4PASSWD|p4 login
p4 sync -f
echo "End P4 Code Successful!"echo "Begin ant Build"
ANT_HOME=/usr/local/bin/apache-ant-1.6.2
PATH=$PATH:$ANT_HOME/bin
ant -version
export ANT_HOME PATH
ant
echo "End ant Build Successful!"echo "copy new deploy"
mv  /usr/local/epm/deploy/builded/epm /usr/local/epm/deploycode
echo "start tomcat"
sh /usr/local/tomcat/bin/startup.shecho "End Deploy Successful!"

build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">
<project name="Web Customization" default="deployFilesToTomcat" basedir="."><property file="build.properties" /><!-- TARGET: INITThe "init" target initiallized variables for the rest of the anttargets.  Please update the properties below appropriately.--><target name="init"description="Initialization of variables for rest of ant targets"><property name="java.source" value="${custom.home}/src" /><property name="web.dir" value="${custom.home}/WebContent" /><property name="script.dir" value="${custom.home}/admin" /><property name="webinf.dir" value="${web.dir}/WEB-INF" /><property name="java.classes" value="${webinf.dir}/classes" /><property name="lib.dir" value="${webinf.dir}/lib" /><property name="build.compiler" value="classic" /></target><target name="prepare" depends="init"description="Create appropriate directories if they do not exist"><mkdir dir="${java.classes}" /></target><!-- TARGET: CLEANThe "clean" target removes directories and files created by anyant target.--><target name="clean" depends="init"description="Remove directories and files created by any target"><delete dir="${java.classes}" quiet="true" /></target><!-- TARGET: COMPILEThe "compile" target is used to compile (or recompile) the Java classesthat are used in this web application.  Feel free to adust targets andclasspath as necessary.--><target name="compile" depends="prepare"description="Compile the java classes used in this web application"><javac srcdir="${java.source}" destdir="${java.classes}"debug="on" optimize="off" deprecation="on"><classpath><fileset dir="${lib.dir}"><include name="*.jar" /></fileset><fileset dir="${tomcat.lib.dir}"><include name="servlet-api.jar" /></fileset>              </classpath></javac><copy todir="${java.classes}"><fileset dir="${java.source}"><include name="**/*.xml" /></fileset></copy>     <copy todir="${java.classes}"><fileset dir="${java.source}"><include name="**/*.properties" /></fileset></copy>  </target><target description="Deploy files Tomcat"name="deployFilesToTomcat" depends="compile"><echo>"Deploying files to web application server Tomcat..."</echo><copy preservelastmodified="true"todir="${tomcat.deployfiles.dir}"><fileset dir="${web.dir}"><include name="**" /><include name="**/**" /></fileset></copy></target><target name="mkwar" description="Create the Web ARchive (WAR) file"><jar jarfile="${custom.home}/${war.filename}" basedir="${web.dir}"/></target><target name="start-tomcat" description="tomcat starting....."><exec executable="${tomcat.home}/bin/startup.bat" spawn="true" vmlauncher="false"><env key="CATALINA_HOME" value="${tomcat.home}"/><arg line="/c start ${tomcat.home}/bin/startup.bat"/></exec></target>
</project>

build.properties

build.compiler=classic
custom.home=path of workspace
tomcat.home=tomcat path
war.filename=epm.war
tomcat.lib.dir=tomcat lib path

tomcat.deploy.dir=tomcat deploy path

后记

a. 这里的处理比较简单,如果有部署异常的一些判断, 可以使用Shell脚本进行扩充, 类似Pipe相关的功能可以达成。
b. Perfore的password如果保密性较高, 可以不写在环境变量中, 
写在脚本中,安全性可能要好一些, 如有更高的需求可以加密或者需要的时候输入。

Java Web项目在Linux服务器自动化部署相关推荐

  1. Java Web项目在Linux服务器自动化部署续-整合Bamboo

    前言 Java Web项目在Linux服务器自动化部署 在这一篇中, 完成的是一个自动化部署的脚本. Atlassian Bamboo 是一款持续集成构建服务器软件(Build Server) 软件地 ...

  2. Java web项目如何在服务器上跑起来(有源码)

    Java web项目如何在服务器上跑起来(有源码) 要用到的工具有:myeclipse.宝塔,navicat premium.xshell. 概述:本博文主要是帮助入门级新手怎么从网上下载一个java ...

  3. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  4. 使用eclipse开发Java Web项目(最最最基础)

    本篇首先给出Tomcat 8.0的安装及验证过程,然后在eclipse中配置已安装成功的Tomcat服务器,最后新建一个Java web工程,并绑定已部署的Tomcat服务器,在工程中新建并运行JSP ...

  5. 云服务器 ECS 建站教程:手工部署Java Web项目

    手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,jav ...

  6. linux下tomcat部署java web项目_在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  7. 从零搭建Linux服务器以及部署Web项目指南

    在Web项目开发中,服务器搭建是非常重要的,同时部署web项目也是经常需要进行的事情,下面对一系列流程工作进行阐述. 1.搭建服务器 可以购买或者自行搭建 首先需要一台服务器,在服务器中安装好Cent ...

  8. 搭建java部署环境以及部署Web项目到Linux

    系列文章目录 Linux 环境搭建以及xshell远程连接_crazy_xieyi的博客-CSDN博客 Linux常用命令详解_crazy_xieyi的博客-CSDN博客 Linux权限_crazy_ ...

  9. 云服务器(uCloud)部署java web项目(二) 安装,配置apache服务器

    自己组建了一个网站,想要发布到互联网上.然后我就找到了这个链接 https://www.codecasts.com/series/deploy-a-website-from-scratch(是一个从零 ...

最新文章

  1. Go基础编程:作用域
  2. C++调用openssl使用sha256,并取结果前64位作为uint64
  3. c++Primer再学习-练习Todo
  4. ipv6简写还原_用什么进制表示ipv6
  5. Oracle SQL语句大全(三)
  6. google now
  7. 无心剑中译奥修《奥修对爱与婚姻的印象》
  8. SQL Server权限设置
  9. 虚拟机登录/系统管理等命令
  10. python软件-python 2.7官方版
  11. 用matlab求三重积分格式,matlab求三重积分
  12. The Devil Wears Prada-16
  13. 分享史上Java最牛逼,最简短的代码
  14. 运行SSD-TensorFlow报错:tensorflow.python.framework.errors_impl.NotFoundError:
  15. Camera成像原理(raw图如何产生的)
  16. Oracle 官网网址
  17. android照片墙的实现
  18. 服务器上的网站怎么打不卡视频,做网站的时候,怎么在网页上播放服务器的视频?...
  19. 如何用计算机打出下山,登山怎么正确下山
  20. H.264_AVC视频编码技术学习

热门文章

  1. 中国剩余定理-模版(互质版)
  2. Codeforces Round #341 (Div. 2)
  3. ubuntu下安装subversion客户端:
  4. get和post混合提交
  5. 关于vs.net中读取文件出现乱码的现象
  6. YouTube推荐系统算法梳理
  7. 【推荐实践】推荐技术在旅游电商中的应用及挑战.pdf(附下载链接)
  8. 【报告分享】阿里巴巴全生态就业体系与就业质量研究报告.pdf(附下载链接)...
  9. 腾讯专家深度解析赛题,现场答疑助力上分!
  10. Airbnb搜索:深度学习排序算法如何进化?