Java Web项目在Linux服务器自动化部署
2017-12-27 09:05
513 查看
项目介绍
使用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.shecho "Begin Deploy"
echo "stop tomcat"
sh /usr/local/tomcat/bin/shutdown.sh
echo "move old deploy"
rm -rf /usr/local/epm/deploycode/epm
echo "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.sh
echo "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: INIT
The "init" target initiallized variables for the rest of the ant
targets. 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: CLEAN
The "clean" target removes directories and files created by any
ant target.
-->
<target name="clean" depends="init"
description="Remove directories and files created by any target">
<delete dir="${java.classes}" quiet="true" />
</target>
<!-- TARGET: COMPILE
The "compile" target is used to compile (or recompile) the Java classes
that are used in this web application. Feel free to adust targets and
classpath 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服务器自动化部署续-整合Bamboo
- java web项目部署到linux服务器验证码图片无法加载
- Linux服务器部署Java Web项目笔记
- 在linux服务器上面部署java web项目jar包
- 搭建linux服务器并部署java web项目(CentOS7+tomcat+Mysql)
- 自动化部署java web项目
- 部署WEB项目到服务器(四)部署WEB项目Forum到linux服务器(Ubuntu)详解
- 如何在Linux中安装tomcat,部署Java web项目
- 部署Web项目到Linux服务器
- maven自动化部署项目到远程服务器(tomcat)
- java web项目部署成功后 总是404不能访问
- java web项目无法部署到tomcat上,idea工具显示部署成功但是无法访问
- 自动化部署之发布maven项目
- Linux(Centos)之安装tomcat并且部署Java Web项目
- JAVA WEB项目发布到LINUX服务器流程
- 使用JRebel进行Java Web项目的热部署
- Linux(Centos)之安装tomcat并且部署Java Web项目
- 在linux服务器上部署自己的git库,并配置IDEA上传项目到git库
- linux服务器svn部署项目总结
- 如何将Java Web项目部署到服务器上