2016-07-01 3 views
0

Я пытаюсь автоматизировать процесс сборки и развертывания Maven в EAR в Jboss. Мне удалось написать файл bat для того же, который приведен ниже.Jboss 7 автоматическое развертывание файла bat bat EAR

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 был успешно развернут от моей битой file.One пути, который я думал о является для проверки на .deplyed или .failed файлы расширения в папке развертывания Jboss. Я пытался писать коды для одного и того же, но мой код, который написан ниже указанной строки, не выполняется. Есть ли другие способы что я могу достичь этого? Или что я делаю неправильно в своем bat-файл? Почему мой код проверяет, не развертывается ли развертывание?

ответ

1

Поскольку standalone.bat не выполняется в фоновом режиме и будет запускать экземпляр JBoss, пока вы его не убьете/не прекратите (ctrl + C-сигнал или как вы завершите работу через CLI jboss). См. this answer, чтобы получить примеры и подробности о том, что вы хотите достичь.

Поскольку вы используете maven, я предлагаю вам использовать jboss-as-maven-plugin. Взгляните на использование, вы найдете команды для развертывания/удаления приложений, ресурсов и запуска/остановки сервера.

Тогда вы можете интегрировать выполнение плагина, чтобы остановить/очистить на чистой фазе maven и развернуть/запустить на стадии установки maven, используя цели. См. Сложные примеры.

0

Мысль о размещении моего решения здесь.

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 

начать JBoss в другом ЦМД window.Now все мои коды из ниже будут выполнены.

Смежные вопросы