微服务框架一键打包,实现开发、部署环境分离

微服务框架一键打包,实现开发、部署环境分离_第1张图片

场景说明

本项目中微服务项目共30+个工程包,开发环境开发人员只需启动一个web工程、service工程,而部署时如上图所示需要增加eureka、zuul等配置,如果将每个包进行单独修改配置文件,修改过多容易出错,这时最好能够进行一次修改,之后能够一键打包。

 

打包环境

工程是基于maven创建的,所以打包环境首选需要maven。文件替换我这里有ant所以直接使用ant做svn下载、文件替换(也可以直接使用bat命令)

查看maven版本:mvn -version

查看ant版本:ant -version

 

编写脚本

微服务框架一键打包,实现开发、部署环境分离_第2张图片

1、准备需要替换的文件

创建replaceFile文件夹,文件夹中按照工程名进行创建文件夹并放入需要替换的文件

微服务框架一键打包,实现开发、部署环境分离_第3张图片

微服务框架一键打包,实现开发、部署环境分离_第4张图片

application.yml:进行修改的有服务名context-path、端口、数据库链接、eureka相关配置、其他微服务链接、redis相关配置等

pom.xml:解决打包特殊文件名

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
		
			
				src/main/java
				
					**/*.meta
				
			
			
                src/main/resources
                
					**/*.properties
					**/*.xml
					**/*.yml
				
            
		
	

XXXXXXX_ServiceApplication.java启动文件:对service工程增加eureka支持@EnableEurekaClient  (web工程不需要)

2、编写ant脚本进行svn下载、文件替换(可以改成bat命令)

创建createPackage.bat、createPackage.xml文件,createPackage.bat中执行ant命令

call ant  -f createPackage.xml

createPackage.xml中编写svn下载以及文件替换,通过svnSetting命令下载检出svn到bin文件夹



     
	 
	 
	 
	 
	 
	 
	  
	 
	 


	
	 

	
			清理历史数据,请稍后...  
			
			
			
			
	
	
		开始从 ${svn.url} 检出源码,请稍后...  
        
            
        
		检出完成....
		移动XXXXService_DA工程:
			移动entity实体类
			
			   
				 
				 
			   
			
			移动XXX_service_common公共服务
			
			   
				 
				 
			   
			
			删除原有application.yml文件
			
			替换yml文件
			
			   
				 
			   
			
			删除原有pom.xml文件
			
			替换pom.xml文件
			
			   
				 
			   
			
			删除原有XXXXService_DAServiceApplication启动文件
			
			替换启动文件
			
			   
				 
			   
			
			完成工程移动
		移动XXXXService_SD工程:
			/***其他工程**/

			/***其他工程**/
			/***其他工程**/
			/***其他工程**/

3、编写mvn打包脚本

创建executeMaven.bat批处理命令,执行mvn打包并且将成功打包的文件放入release中

set appname=
if not defined %1 (
	set appname=%1
)
cd bin/%appname%
echo "执行maven打包"
call mvn clean package -U -Dmaven.test.skip=true -Dmaven.javadoc.skip=true


echo "移动jar、war文件"
cd ../
cd ../

copy "bin\%appname%\target\" "release/"

dir

echo "release/%appname%-0.0.1-SNAPSHOT.jar.original"

del /a/f/q "release\%appname%-0.0.1-SNAPSHOT.jar.original"

del /a/f/q "release\%appname%-0.0.1-SNAPSHOT.war.original"

echo "%appname%打包成功,放入release中"

4、编写主入口文件

所有工作准备好后,创建一键打包的主入口文件,通过call命令进行顺序执行打包命令,首先执行ant批处理名进行替换文件,接下来逐个执行打包

call createPackage

call executeMaven xxxxService_DA
call executeMaven xxxxService_SD
call executeMaven xxxxService_YC
call executeMaven xxxxService_Main
call executeMaven xxxxWeb_DA
call executeMaven xxxxWeb_SD
call executeMaven xxxxWeb_YC
call executeMaven xxxxWeb_Main

pause

执行完成后就可以将release中的文件拿到服务器部署啦

微服务框架一键打包,实现开发、部署环境分离_第5张图片

(接下来感兴趣的读者可以再通过ant编写一个“一键发布”,将jar、war上传到相应的服务器,然后执行nohuo java -jar XXXX进行一键发布)

 

你可能感兴趣的:(ant,微服务)