Java Web项目在Linux服务器自动化部署

项目介绍

使用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/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





	

	
	
		
		

		
		
		
		
		
		
		

		

		

	

	
		
	

	
	
		
	




	
	
		
			
				
					
				
				
					
								
			
		
		
			
				
			
				
	    
				
					
				
	    	
	

	
			
				"Deploying files to web application server Tomcat..."
			
			
				
					
					
				
			
	

	
		
	

	
	
	 
	 
	 
	

	


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如果保密性较高, 可以不写在环境变量中, 
写在脚本中,安全性可能要好一些, 如有更高的需求可以加密或者需要的时候输入。




你可能感兴趣的:(430-代码控管与系统构建)