Я бы хотел использовать hudson с плагином maven для развертывания приложения на сервере Jboss 6 следующим образом:
- Хадсон вызывает задачи maven clean install
- В файле pom.xml естьопределенный грузовой плагин (версия 1.0.6)
- Грузовой плагин определил повторное развертывание выполнения для фазы установки с остановкой и запуском целей (в этом порядке)
Все отлично работает - проекточищается и затем устанавливается, затем сервер jboss останавливается (с помощью cargo: stop) и запускается снова (с помощью cargo: start).Во время начальной цели - война с моим проектом, развернутым в jboss.Когда я тестирую свой веб, он работает и все изменения присутствуют.
Единственная проблема заключается в том, что после запуска сервера Jboss maven не завершает свою работу успешно, потому что он показывает сообщение "[INFO] НажмитеCtrl-C, чтобы остановить контейнер ... "и ждет нажатия Ctrl-C.Это стандартный груз: начальное поведение.В результате работа Хадсона не заканчивается успешно.
Сейчас я прошу какой-то обходной путь для этой небольшой проблемы.Мне понадобилось много времени (около 16 часов), чтобы добраться до этого состояния, и я не был бы рад, если бы мне пришлось полностью его переделывать.
Мои идеи, как это могло произойти (но я не смог ничего гуглитьполезно):
- заставить Хадсона запускать задачу maven в фоновом режиме
- заставить груз запускать jboss в фоновом режиме (некоторые spawn, fork, параметр jvm, аргумент времени выполнения jboss)
- заставляет maven запускать задачу в фоновом режиме
Причина, по которой я пробую это решение, заключается в том, что я хочу, чтобы jboss постоянно работал на сервере, а опция удаленного развертывания груза мне не подходит,потому что он использует слишком много системных ресурсов.Это решение должно быть хорошо для установки проекта, а затем перезапустить сервер (стоп - старт).
Спасибо за любую помощь.Вот моя конфигурация грузового плагина:
<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>