Я хотел бы использовать hudson с плагином maven для развертывания приложения на сервере Jboss 6 следующим образом:
- Хадсон называет задачи чистой установки maven
- В файле pom.xml определен плагин Cargo (версия 1.0.6)
- Плагин Cargo определил повторное развертывание выполнения для фазы установки с остановкой и запуском целей (в этом порядке)
Все работает нормально - проект очищается и затем устанавливается, затем сервер jboss останавливается (с помощью Cargo: stop) и снова запускается (с помощью cargo: start). Во время старта цель - война с моим проектом, развернутым на jboss. Когда я тестирую свою сеть, она работает, и все изменения присутствуют.
Единственная проблема заключается в том, что после запуска сервера Jboss maven не завершает свое выполнение успешно, потому что показывает сообщение «[ИНФОРМАЦИЯ] Нажмите Ctrl-C, чтобы остановить контейнер ...» и ожидает нажатия Ctrl-C. Это стандартное поведение Cargo: start. В результате работа Хадсона не заканчивается успешно.
То, что я сейчас прошу, - это своего рода обходной путь для этой маленькой проблемы. Мне нужно много времени (около 16 часов), чтобы добраться до этого состояния, и я не был бы рад, если бы мне пришлось его полностью переработать.
Мои идеи, как это могло пройти (но я не смог гуглить ничего полезного):
- заставить Хадсона запускать задачу maven в фоновом режиме
- заставить Cargo запускать jboss в фоновом режиме (некоторый порождение, вилка, параметр jvm, аргумент времени выполнения jboss)
- заставить maven запускать задачу в фоновом режиме
Причина, по которой я пробовал это решение, заключается в том, что я хочу, чтобы jboss работал постоянно на сервере, а вариант удаленного развертывания Cargo мне не подходит, потому что он использует слишком много системных ресурсов. Это решение должно быть подходящим для установки проекта и последующего перезапуска сервера (стоп - запуск).
Спасибо за любую помощь. Вот моя конфигурация грузового плагина:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.6</version>
<configuration>
<container>
<containerId>jboss6x</containerId>
<append>false</append>
<timeout>300000</timeout>
<home>/atteq/jboss</home>
</container>
<configuration>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
<cargo.jboss.configuration>atteq-minimal</cargo.jboss.configuration>
<cargo.logging>high</cargo.logging>
<cargo.rmi.port>1099</cargo.rmi.port>
<cargo.jvmargs>-XX:PermSize=512m -XX:MaxPermSize=1024
-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled</cargo.jvmargs>
<cargo.runtime.args>--host 0.0.0.0</cargo.runtime.args>
</properties>
<type>existing</type>
<home>/atteq/jboss/server/atteq-minimal</home>
<deployables>
<deployable>
<groupId>roztocto</groupId>
<artifactId>roztocto</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
</configuration>
<executions>
<execution>
<id>redeploy</id>
<phase>install</phase>
<goals>
<goal>stop</goal>
<goal>start</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-core-tools-jboss-deployer-5.1-and-onwards</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-profileservice-client</artifactId>
<version>6.0.0.Final</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.profileservice</groupId>
<artifactId>jboss-profileservice-spi</artifactId>
<version>0.2.2</version>
</dependency>
<dependency>
<groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-client</artifactId>
<version>6.0.0.Final</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>