不同环境(配置文件)下的项目发布
一、 摘要
前段时间写了两篇关于maven自动部署的文章,其基本步骤分两步,一是打包,二是发布。其中,打包时通过某种方案,使代码中的配置文件对应将要发布的环境。发布则只是将项目代码上传至对应环境的服务器下。不管何种方案,都需要进行相应的配置,过程中若出现莫名的报错,很容易陷入困境。因而,从另一种角度思考并解决问题,只要能达到目标,简单清晰的解决方法,也是可以接受的。
二、 环境
开发: Win10 Eclipse
运行:WinServer 2008
三、 解决思路
在项目WEB-INF文件下创建一个配置文件夹,将不同环境的配置文件分别存放,并创建相应的脚本,用于将当前文件夹内的配置文件替换掉项目中,打包发布到项目后,解压war包(可手动可写脚本执行),执行对应环境的脚本即可。
四、 替换脚本
|
@echo off title=初始化配置文件 rem 设置配置文件个数(包括config.bat) set CONFIGS=5 setlocal enabledelayedexpansion for /r . %%a in (*.*) do ( set /a s+=1 ) if %s% NEQ %CONFIGS% goto error
rem 初始化配置文件路径 set CONFIG=%cd% echo 当前环境配置文件路径为: echo %CONFIG% choice /c YN /m 是否开始替换? if errorlevel 2 goto end
rem 初始化配置文件源路径和目标路径 rem 获取项目根路径 cd ..\..\..\.. set ROOT=%cd% rem 获取classes相关配置文件源路径和目标路径 set CLASSESSOU=%CONFIG%\classes set CLASSESTAR=%ROOT%\WEB-INF\classes rem 获取web-inf相关配置文件源路径和目标路径 set WEBINFSOU=%CONFIG%\web-inf set WEBINFTAR=%ROOT%\WEB-INF rem 获取home相关配置文件源路径和目标路径 set HOMESOU=%CONFIG%\home set HOMETAR=%ROOT%\static\core\page\home
rem 开始替换 copy %CLASSESSOU% %CLASSESTAR% copy %WEBINFSOU% %WEBINFTAR% copy %HOMESOU% %HOMETAR% echo 替换成功
rem 删除所有配置脚本 choice /c YN /m 是否删除所有配置脚本? if errorlevel 2 goto end cd %ROOT%\WEB-INF\RELEASE\config rd %cd% /s /q
goto end :error echo 配置文件缺失,请核对后再执行! :end echo. echo 按任意键退出...
pause > nul & exit |
五、 其他
1、 解压war可以使用WinRAR工具,只需要在其设置中关联war格式的文件即可右键解压。
2、 此脚本是windows环境下的批处理脚本,在linux下需要写shell脚本,脚本逻辑比较简单,在此就不再给出。
3、 此脚本中首先对将要替换的配置文件进行数量统计校验,防止脚本丢失引起的替换不完全,然后进行相应文件的目录结构设置,最后是替换执行,完成后可以选择是否删除这些用于替换的各种配置文件,以防止误操作;
4、 目录结构示例:
5、 才疏学浅,不足之处,望乞指教。
本文介绍了如何在不同环境(如开发、生产)下,通过在WEB-INF创建配置文件夹并编写Windows批处理脚本来替换项目中的配置文件,简化项目的发布流程。这种方式避免了复杂配置,只需解压war包,执行对应环境的脚本即可完成配置文件的替换。
7507

被折叠的 条评论
为什么被折叠?



