不同环境(配置文件)下的项目发布

来源:互联网 发布:jackson list转json 编辑:程序博客网 时间:2024/06/05 10:49

不同环境(配置文件)下的项目发布

一、   摘要

        前段时间写了两篇关于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、  才疏学浅,不足之处,望乞指教。

阅读全文
0 0