test环境中自动完成从cvs更新代码、构建部署等,简化部署过程!

阅读更多
之前文章中描述了怎么利用maven profile分dev、test、pro三种环境,为了方便test环境中部署最新代码,利用maven和shell,执行脚本完成代码从cvs的更新、构建、undeply、停止tomcat、deploy、启动tomcat过程。主要借助三个插件帮助我完成上面所有动作
1:maven scm plugin 从cvs更新代码
2:maven cargo plugin 执行undeply、停止tomcat、deploy、启动tomcat
3:mavaen antrun plugin, 如果cargo中配置jmx端口,jvm启动jmx。cargo:stop无法正常停止服务器,于是使用antrun plugin来停止服务器。

下面贴出pom.xml配置和shell script,配置不算复杂,相信很容易看懂。


	4.0.0
	com.ustcsoft.eisp.cargo
	cargo-deployer-local
	0.0.1-SNAPSHOT
	pom
	
	
		ROOT
		com.ustcsoft.eisp
		eisp-integration
		0.0.1-SNAPSHOT
		
		
		/home/tomcat/eisp-tomcat
		http
		127.0.0.1
		8080
		8009
		manager
		000000
 	

	
		
			${cargo.project.groupid}
			${cargo.project.artifactid}
			${cargo.project.version}
			war
		
	
	
	
		scm:cvs:pserver:ste-cloud:[email protected]:1401/TS-CLOUD
		scm:cvs:pserver:ste-cloud:[email protected]:1401/TS-CLOUD
	
	
	
		
			
		      	org.apache.maven.plugins
		        maven-scm-plugin
		        
		        	ste-cloud
	        		/home/tomcat/sources/eisp
          			
		            	cvs_native
		          	
		        
		    
			
				org.codehaus.cargo
				cargo-maven2-plugin
				1.2.0
				
					true
					
					
						tomcat7x
						installed
						${catalina.home}
					
					
					
						
						existing
						${catalina.home}
						
							
							
							${cargo.tomcat.manager.protocol}://${cargo.tomcat.manager.hostname}:${cargo.tomcat.manager.port}/manager
							
							${cargo.tomcat.manager.port}
							${cargo.tomcat.manager.username}
							${cargo.tomcat.manager.password}
							${cargo.tomcat.manager.ajp.port}
							
								-Dcom.sun.management.jmxremote=true 
								-Dcom.sun.management.jmxremote.port=1099 
								-Dcom.sun.management.jmxremote.ssl=false 
								-Dcom.sun.management.jmxremote.authenticate=false 
								-Djava.rmi.server.hostname=172.17.3.242 
								-Djava.awt.headless=true
							
						
					
					
					
						
						installed
						
							 
							
								 ${cargo.project.groupid} 
								 ${cargo.project.artifactid}
								 war
								 
								 
								 ${myproject.name}
								 
							
						
					
				
			
			
			
  				maven-antrun-plugin
  				1.7
      			
        			
				      	  
				        	  
				      	  
          				
        			
      			
			
		
	



#!/bin/sh
#功能:测试环境代码更新、打包、停止服务器、部署、启动服务器功能的实现

#提示键盘输入
printf "测试环境代码是否需要更新打包Please enter Yes/No:"
#读取输入字符
read a
case $a in
Yes|yes|y)
   echo "you choose Yes"
   #更新代码
   mvn scm:update
   cd /home/tomcat/sources/eisp/com.ustcsoft.eisp.parent
   #打包
   mvn install -U
   cd /home/tomcat/sources/cargo/cargo-deployer-local
   #撤销部署
   mvn cargo:undeploy
   #休息10s
   sleep 10s
   #停止服务器,增加jmx端口以后,无法使用cargo:stop正常停止服务器,使用ant 调用shell停止服务器。
   mvn antrun:run
   #部署
   mvn cargo:deploy
   #启动服务器
   nohup mvn cargo:run &;;
No|no|n)
   echo "you choose No"
   cd /home/tomcat/sources/cargo/cargo-deployer-local
   mvn cargo:undeploy
   sleep 10s
   mvn cargo:stop
   mvn cargo:deploy
   nohup mvn cargo:run &;;
*)
   echo "you choose error";;
esac

你可能感兴趣的:(test环境中自动完成从cvs更新代码、构建部署等,简化部署过程!)