Jboss7 自动部署EAR bat文件
Jboss 7 automatic deployment of EAR bat file
我正在尝试在 Jboss 中自动化 EAR 的 Maven 构建和部署过程。我设法为下面给出的相同内容编写了一个 bat 文件。
ECHO OFF
RMDIR /S /Q .\deploy
call mvn clean install -D build=P,JB
call mvn clean install -D build=F,JB
@echo | call C:\Work\jboss-as-7.1.1.Final\bin\jboss-cli.bat --connect --controller=[my-machine-name]:9999 command=:shutdown
del /q C:\Work\jboss-as-7.1.1.Final\standalone\deployments\*.*
xcopy /s /y .\deploy\function\Jboss\*.ear C:\Work\jboss-as-7.1.1.Final\standalone\deployments
xcopy /s /y .\deploy\WorkFlowEngine\Jboss\*.ear C:\Work\jboss-as-7.1.1.Final\standalone\deployments
cd C:\Work\jboss-as-7.1.1.Final\bin
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\data" /s /q
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\log" /s /q
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\tmp" /s /q
standalone.bat -bmanagement [my-machine-name] -b [my-machine-name] -c standalone-full-ha.xml
{code for check of deployment success/failure}
PAUSE
在这里你可以看到我使用的是
standalone.bat -bmanagement sbstjwsvm1509 -b sbstjwsvm1509 -c standalone-full-ha.xml
我的要求是我想检查 EAR 是否从我的 bat file.One 中成功部署,我想到的方法是检查 .deplyed 或 .failed Jboss 部署中的扩展文件 folder.I 试图编写相同的代码,但我在上述行下方编写的代码没有得到 executed.Is 我可以通过任何其他方式实现这一目标吗?或者我在我的 bat 文件中做错了什么?为什么我的检查部署的代码没有被执行?
因为 standalone.bat 不在后台执行,将 运行 JBoss 实例,直到你 kill/stop 它(ctrl+C 信号或类似你关闭通过 jboss CLI)。请参阅 this answer 以获取有关您要实现的目标的示例和详细信息。
既然你用的是maven,我建议你用jboss-as-maven-plugin。
查看用法,您会找到 deploy/undeploy 应用程序、资源和 start/stop 服务器的命令。
然后您可以使用目标将插件执行集成到 Maven 清理阶段的 stop/clean 和 Maven 安装阶段的 deploy/start。查看复杂示例。
想在这里发布我的解决方案。
ECHO OFF
SET "JBOSS_DIR=C:\Work\jboss-as-7.1.1.Final"
SET "deployedAPP=MyApp.ear"
RMDIR /S /Q .\deploy
call mvn clean install -D build=P,JB
call mvn clean install -D build=F,JB
@echo | call %JBOSS_DIR%\bin\jboss-cli.bat --connect --controller=[mymachine_name]:9999 command=:shutdown
del /q %JBOSS_DIR%\standalone\deployments\*.*
xcopy /s /y .\deploy\function\Jboss\*.ear %JBOSS_DIR%\standalone\deployments
xcopy /s /y .\deploy\WorkFlowEngine\Jboss\*.ear %JBOSS_DIR%\standalone\deployments
cd %JBOSS_DIR%\bin
PING -n 61 -w 1 localhost >nul
START CMD /C CALL MyJboss.bat
SET count=0
:checkIfDeployed
if exist "%JBOSS_DIR%\standalone\deployments\%deployedAPP%.deployed" (
GOTO appDeployed
)
if exist "%JBOSS_DIR%\standalone\deployments\%deployedAPP%.failed" (
GOTO deployFailed
)
PING -n 6 -w 1 localhost >nul
GOTO checkIfDeployed
:appDeployed
PAUSE
EXIT
:deployFailed
SET /A count+=1
if %count% == 5 ( goto end )
@echo | call %JBOSS_DIR%\bin\jboss-cli.bat --connect --controller=[mymachine_name]:9999 command=:shutdown
PING -n 61 -w 1 localhost >nul
START CMD /C CALL MyJboss.bat
GOTO checkIfDeployed
:end
PAUSE
使用了行
START CMD /C CALL MyJboss.bat
在另一个 cmd 中启动 JBoss window.Now 我下面的所有代码都将被执行。
我正在尝试在 Jboss 中自动化 EAR 的 Maven 构建和部署过程。我设法为下面给出的相同内容编写了一个 bat 文件。
ECHO OFF
RMDIR /S /Q .\deploy
call mvn clean install -D build=P,JB
call mvn clean install -D build=F,JB
@echo | call C:\Work\jboss-as-7.1.1.Final\bin\jboss-cli.bat --connect --controller=[my-machine-name]:9999 command=:shutdown
del /q C:\Work\jboss-as-7.1.1.Final\standalone\deployments\*.*
xcopy /s /y .\deploy\function\Jboss\*.ear C:\Work\jboss-as-7.1.1.Final\standalone\deployments
xcopy /s /y .\deploy\WorkFlowEngine\Jboss\*.ear C:\Work\jboss-as-7.1.1.Final\standalone\deployments
cd C:\Work\jboss-as-7.1.1.Final\bin
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\data" /s /q
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\log" /s /q
rmdir "C:\work\jboss-as-7.1.1.Final\standalone\tmp" /s /q
standalone.bat -bmanagement [my-machine-name] -b [my-machine-name] -c standalone-full-ha.xml
{code for check of deployment success/failure}
PAUSE
在这里你可以看到我使用的是
standalone.bat -bmanagement sbstjwsvm1509 -b sbstjwsvm1509 -c standalone-full-ha.xml
我的要求是我想检查 EAR 是否从我的 bat file.One 中成功部署,我想到的方法是检查 .deplyed 或 .failed Jboss 部署中的扩展文件 folder.I 试图编写相同的代码,但我在上述行下方编写的代码没有得到 executed.Is 我可以通过任何其他方式实现这一目标吗?或者我在我的 bat 文件中做错了什么?为什么我的检查部署的代码没有被执行?
因为 standalone.bat 不在后台执行,将 运行 JBoss 实例,直到你 kill/stop 它(ctrl+C 信号或类似你关闭通过 jboss CLI)。请参阅 this answer 以获取有关您要实现的目标的示例和详细信息。
既然你用的是maven,我建议你用jboss-as-maven-plugin。 查看用法,您会找到 deploy/undeploy 应用程序、资源和 start/stop 服务器的命令。
然后您可以使用目标将插件执行集成到 Maven 清理阶段的 stop/clean 和 Maven 安装阶段的 deploy/start。查看复杂示例。
想在这里发布我的解决方案。
ECHO OFF
SET "JBOSS_DIR=C:\Work\jboss-as-7.1.1.Final"
SET "deployedAPP=MyApp.ear"
RMDIR /S /Q .\deploy
call mvn clean install -D build=P,JB
call mvn clean install -D build=F,JB
@echo | call %JBOSS_DIR%\bin\jboss-cli.bat --connect --controller=[mymachine_name]:9999 command=:shutdown
del /q %JBOSS_DIR%\standalone\deployments\*.*
xcopy /s /y .\deploy\function\Jboss\*.ear %JBOSS_DIR%\standalone\deployments
xcopy /s /y .\deploy\WorkFlowEngine\Jboss\*.ear %JBOSS_DIR%\standalone\deployments
cd %JBOSS_DIR%\bin
PING -n 61 -w 1 localhost >nul
START CMD /C CALL MyJboss.bat
SET count=0
:checkIfDeployed
if exist "%JBOSS_DIR%\standalone\deployments\%deployedAPP%.deployed" (
GOTO appDeployed
)
if exist "%JBOSS_DIR%\standalone\deployments\%deployedAPP%.failed" (
GOTO deployFailed
)
PING -n 6 -w 1 localhost >nul
GOTO checkIfDeployed
:appDeployed
PAUSE
EXIT
:deployFailed
SET /A count+=1
if %count% == 5 ( goto end )
@echo | call %JBOSS_DIR%\bin\jboss-cli.bat --connect --controller=[mymachine_name]:9999 command=:shutdown
PING -n 61 -w 1 localhost >nul
START CMD /C CALL MyJboss.bat
GOTO checkIfDeployed
:end
PAUSE
使用了行
START CMD /C CALL MyJboss.bat
在另一个 cmd 中启动 JBoss window.Now 我下面的所有代码都将被执行。