XLDeploy "mvn import deploy" уже импортирован - PullRequest
0 голосов
/ 05 декабря 2018

Я использую XLDeploy "xl-deploy-8.2.1-server-trial-edition" в Windows для тестирования конвейера развертывания приложений на основе Spring способом DevOps.У меня есть Дженкинс, который выполняет некоторые maven цели:

  1. , чтобы построить войну (целевой пакет)
  2. дар (цель xldeploy: генерировать-развертывание-пакет сопоставлен с фазовым пакетом)
  3. развернуть войну в Nexus (цель развертывания)
  4. импортировать dar во внутренний репозиторий XLDeploy (цель xldeploy: импорт сопоставлен с фазой развертывания)
  5. развернуть войну в среде 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Пример использования таргетинга на контейнеры автоматически. Почему?

С наилучшими пожеланиями.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Это правильно.Цель xldeploy:deploy также выполняет импорт.Это заставляет вас помещать некоторую логику в Jenkins, например (псевдокод): if no deploy: execute xldeploy:import if deploy: execute xldeploy:deploy

0 голосов
/ 12 декабря 2018

В плане развертывания проблема заключалась в отсутствующем теге «веб-приложение» в VirtualHost CI в части инфраструктуры.

...