2009-09-08 6 views
4

Я пытаюсь подключить плагин Cargo к моему проекту maven, чтобы извлечь выгоду из горячего развертывания войны, нацеленного на сервер Jonas.Maven2: Плагин горячего развертывания и поддержка Jonas

Официальная документация не так понятна в отношении того, что поддерживается, а что нет (например, вы можете найти это: http://cargo.codehaus.org/Hot+Deployment, но и это http://cargo.codehaus.org/JOnAS+4.x).

Во всяком случае у меня есть следующий coniguration в течение POM моей войны:

<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <version>1.0</version> 
    <configuration> 
     <container> 
      <containerId>jonas4x</containerId> 
      <home>C:\JOnAS-4.8.4\nt\bin</home> 
     </container> 

     <configuration> 
      <type>existing</type> 
      <home>C:\JOnAS-4.8.4</home> 
     </configuration> 
    </configuration> 
</plugin> 

И когда я бегу

mvn cargo:deploy 

на мой проект, война копируется в WebApps папку Jonas, но есть нет горячего развертывания. Файл копируется только, но горячая команда Jonas не вызывается, поэтому мои модификации недоступны немедленно.

EDIT: Я также попытался добавить конфигурацию развертывателя, как было предложено в ответах, но поведение одинаковое (то есть: война копируется, но команда hotas Jonas не вызывается, чтобы война не перезагружалась в Jonas) ,

Я что-то упускаю или правильно говорю, что плагин Cargo Maven не поддерживает Jonas Hot Deployement?

Заранее благодарен!

+0

по определению, никакое программное обеспечение, которое больше похоже на обслуживание, отличное от хорошего, понятно. программное обеспечение является абсолютным 0 или 1 двоичным, средство очистки 3, как прямая математика или классическая логика –

+0

@LarsOn: извините, я не понимаю ваш комментарий ... или даже предложение .. – reef

ответ

1

Страница груза на deploying to a running container ссылки на table с указанием версии, в которой для этого контейнера было предложено горячее развертывание. Согласно таблице, JOnAS 4.x поддерживается с версии 1.0 (которую вы используете), поэтому он должен работать.

На этой странице также содержатся некоторые рекомендации по настройке плагина для развертывания, я попытался их интерпретировать ниже.

От элемента home в вашей конфигурации Предполагаю, что вы пытаетесь локальное развертывание. Конфигурация на странице запуска контейнера подразумевает, что в этой строке должно быть автоматически включено горячее развертывание:

Просто введите mvn-груз: разверните. Обратите внимание, что мы не указали ни один элемент, ни один. Это связано с тем, что плагин достаточно умен, чтобы создавать экземпляры по умолчанию для вас. Круто, не так ли?

Однако более ранний блок конфигурации указывает, что вы должны настроить раздел deployer, чтобы сделать плагин для груза осведомленным о войне, которая будет развернута. Конфигурация для Deployer будет что-то вроде этого:

<deployer> 
    <type>local</type> 
    <deployables> 
    <deployable> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>${project.artifactId}</artifactId> 
     <type>war</type> 
     <properties> 
     <context>optional root context</context> 
     </properties> 
     <pingURL>optional url to ping to know if deployable is done or not</pingURL> 
     <pingTimeout>optional timeout to ping (default 20000 milliseconds)</pingTimeout> 
    </deployable> 
    </deployables> 
</deployer> 

Если автоматическая опция не работает для вас, рассмотреть вопрос об объявлении конфигурации для войны.

+0

Спасибо за ваш ответ. Я добавил раздел развертывания в свою конфигурацию и ничего не изменил. На самом деле проблема в том, что моя война скопирована в хороший каталог Jonas, но кажется, что плагин не вызывает горячую команду Jonas для развертывания (jonas admin -a my_war).Поэтому у меня была скопирована моя война, но не была должным образом развернута. – reef

+0

Это решение помогло мне, извините, что не решило вашу оригинальную проблему. – dpb