Я использую XLDeploy "xl-deploy-8.2.1-server-trial-edition" в Windows для тестирования конвейера развертывания приложений на основе Spring способом DevOps.У меня есть Дженкинс, который выполняет некоторые maven цели:
- , чтобы построить войну (целевой пакет)
- дар (цель xldeploy: генерировать-развертывание-пакет сопоставлен с фазовым пакетом)
- развернуть войну в Nexus (цель развертывания)
- импортировать dar во внутренний репозиторий XLDeploy (цель xldeploy: импорт сопоставлен с фазой развертывания)
- развернуть войну в среде UAT (цельxldeploy: deploy)
Я использую xldeploy-maven-plugin release 6.0.x.
У меня возникла проблема при выполнении xldeploy: deploy target:
#mvn clean package deploy xldeploy:deploy
Сервер XLDeploy жалуется на «Уже импортированную версию», точнее:
2018-12-05 16:00:03.540 [qtp251546027-45] {username=admin} INFO c.x.x.p.SourceArtifactEnricher - Going to scan artifact Applications/SGS/SBO/RETAIL/PI/ALPHA/market-securities-account/1.0.0-20181205-155919/market-securities-account
2018-12-05 16:00:09.722 [qtp251546027-46] {username=admin} INFO c.x.d.r.m.DeployitExceptionMapper - Already imported version 1.0.0-20181205-155919 of application SGS/SBO/RETAIL/PI/ALPHA/market-securities-account
2018-12-05 16:00:09.724 [qtp251546027-46] {username=admin} INFO c.x.d.r.m.DeployitExceptionMapper - Intercepting DeployitException
com.xebialabs.deployit.service.importer.ImporterException: Already imported version 1.0.0-20181205-155919 of application SGS/SBO/RETAIL/PI/ALPHA/market-securities-account
at com.xebialabs.deployit.service.importer.ImporterServiceImpl.checkImported(ImporterServiceImpl.java:222)
at com.xebialabs.deployit.service.importer.ImporterServiceImpl.doImport(ImporterServiceImpl.java:144)
at com.xebialabs.deployit.service.importer.ImporterServiceImpl.importPackage(ImporterServiceImpl.java:129)
at com.xebialabs.deployit.core.rest.api.PackageResource.doImport(PackageResource.java:107)
at com.xebialabs.deployit.core.rest.api.PackageResource.upload(PackageResource.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Действительно, Maven через этап развертывания (сопоставленный с xldeploy: цель импорта) уже импортировал dar вСервер XLDeploy и фаза xldeploy: deploy попытайтесь снова импортировать тот же dar.Зачем?В соответствии с документами xldeploy-maven-plugin цель развертывания выполняет только развертывание, но не импорт dar.
И если я удалю вызов цели импорта ранее, сопоставленный с фазой развертывания, то просто вызову:
#mvn clean package xldeploy:deploy
Я импортировал dar на сервер XLDeploy, и в консоли сервера отображается видимый план развертывания:
# [Phased plan]
# [Plan phase]
* Register changes for market-securities-account
----------------------------------------------
1. (100) - Register deployeds (step: RepositoryUpdateStep, rule: null)
, который состоит только в том, чтобы регистрировать приложение как развернутое, но на моих 2 Tomcats ничего не развернуто.
Но при развертывании через веб-интерфейс у меня в консоли следующий план:
# [Phased plan]
# [Plan phase] Deploy
#########################################################################
# [Serial] Deploy market-securities-account 1.0.0-20181205-165054 on DEV
#########################################################################
| * Deploy on container VirtualHost (Group default)
| -----------------------------------------------
| 1. ( 10) - Stop Tomcat2 (step: ScriptExecutionStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 2. ( 11) - Waiting 10 seconds for Tomcat2 to stop (step: WaitStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 3. ( 60) - Create war settings in market-securities-account.xml on VirtualHost (step: TemplateArtifactCopyStep, rule: tomcat.WarModule.executeCreate_CREATE)
| 4. ( 70) - Create market-securities-account on VirtualHost (step: ArtifactCopyStep, rule: tomcat.WarModule.executeCreate_CREATE)
| *checkpoint* CREATE Infrastructure/DEV/VM_ALPHA2_DEV/Tomcat2/VirtualHost/market-securities-account
| 5. ( 90) - Start Tomcat2 (step: ScriptExecutionStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 6. ( 91) - Waiting 10 seconds for Tomcat2 to start (step: WaitStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
|-------------------------------------------->
| * Deploy on container VirtualHost (Group 1)
| -----------------------------------------
| 1. ( 10) - Stop Tomcat1 (step: ScriptExecutionStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 2. ( 11) - Waiting 10 seconds for Tomcat1 to stop (step: WaitStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 3. ( 60) - Create war settings in market-securities-account.xml on VirtualHost (step: TemplateArtifactCopyStep, rule: tomcat.WarModule.executeCreate_CREATE)
| 4. ( 70) - Create market-securities-account on VirtualHost (step: ArtifactCopyStep, rule: tomcat.WarModule.executeCreate_CREATE)
| *checkpoint* CREATE Infrastructure/DEV/VM_ALPHA1_DEV/Tomcat1/VirtualHost/market-securities-account
| 5. ( 90) - Start Tomcat1 (step: ScriptExecutionStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
| 6. ( 91) - Waiting 10 seconds for Tomcat1 to start (step: WaitStep, rule: com.xebialabs.deployit.plugin.generic.container.LifeCycleContributor.restartContainers)
# [Plan phase]
* Register changes for market-securities-account
----------------------------------------------
1. (100) - Register deployeds (step: RepositoryUpdateStep, rule: null)
Почему такая разница?Происходит ли это из-за того, что мое развертываемое приложение не нацелено автоматически на контейнеры среды, как описано на следующем снимке экрана?
План развертывания XLDeploy через пользовательский интерфейс
При попытке с PetClinicПример использования таргетинга на контейнеры автоматически. Почему?
С наилучшими пожеланиями.