Загрузите WAR из хранилища снимков и разверните его на локальный JBoss, используя mvn

В настоящее время я развертываю свой war с jboss:hard-deploy в JBoss 6 AS. Это отлично работает, но я должен проверить проект из SVN и упаковать его.

war уже загружен в наш внутренний репозиторий снимков Jenkins, и было бы неплохо, если бы я мог загрузить его на тестовом сервере из этого репозитория и напрямую развернуть его на JBoss с помощью maven.

Этот вопрос связан с Maven разворачивает артефакт войны с репозитория на удаленный сервер, но я не думаю, что ответ правильный (см. комментарий там).

Ответ 1

В идеале вы хотели бы настроить Jenkins для развертывания на ваш сервер тестирования как часть вашей сборки CI.

В качестве альтернативы, если вы хотите вручную запустить script на сервере, на котором вы развертываете, вы можете настроить конкретный pom.xml для выполнения этой задачи. Сначала настройте плагин зависимостей, чтобы загрузить вашу войну:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>my-group</groupId>
              <artifactId>my-web-archive</artifactId>
              <version>my-vesion</version>
              <type>war</type>
              <destFileName>my-web-archive.war</destFileName>
            </artifactItem>
          </artifactItems>
          <outputDirectory>${project.build.directory}</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

Подстановка идентификатора группы, идентификатора артефакта и версии для соответствующих свойств вашего файла WAR. Затем настройте плагин JBoss для развертывания загруженной WAR:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jboss-maven-plugin</artifactId>
    <version>1.5.0</version>
    <configuration>
      <jbossHome>/opt/jboss-6</jbossHome>
      <serverName>all</serverName>
      <fileName>${project.build.directory}/my-web-archive.war</fileName>
    </configuration>
  </plugin>

Затем вы можете загрузить артефакт из своего внутреннего репозитория и развернуть его в локально запущенном контейнере JBoss со следующей командой:

mvn package jboss:hard-deploy