2010-03-03 15 views
14

Bir Spring Roo projem var ve uygulamanızı çalıştırmak için mvn jetty:run kullanıyorum. Tek sorun, sınıflarında yapılan değişikliklerin sıcak dağıtım gerektirmemesidir; *.jspx için yapılan değişiklikler ise iyi bir şekilde dağıtılır.Yerleşik iskelede sıcak dağıtımı

Peki mvn iskelesini java sınıfları için hotdeploy olarak nasıl yapılandırabilirim?

cevap

22

Bunu sağlamak için büyük bir değere 0 scanIntervalSeconds ayarlamak gerekir:

scanIntervalSeconds - saniyeler içinde aralık değişiklikleri için web uygulamasını, tarama ve gerekirse bağlamı yeniden başlatmak için. Yeniden yükleme etkinse yoksayılır. Varsayılan olarak devre dışıdır. Varsayılan değer geçerli: 0.

Yani konfigürasyon kudreti şuna benzer:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.22</version> 
    <configuration> 
    <scanIntervalSeconds>1</scanIntervalSeconds> 
    </configuration> 
</plugin> 

kez etkin tarafından ${project.build.outputDirectory} işaret classDirecory tanımlanan dizin (tarar dalgakıran maven eklentisi Değişiklikler için varsayılan olarak target/classes).

Daha sonra IDE derleme sınıflarınızı target/classes (veya mvn compile çalıştırmak için) yapmanız gerekir ve Jetty, Java sınıflarındaki değişiklikler üzerine içeriği yeniden başlatır.

+0

Çok teşekkürler! :) – portoalet

+0

Jetty sınıfları yeniden çizerken 404 hatası var. Onlardan sakınmak için herhangi bir öneri? Ayrıca şu soruya da bakınız: http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment – tholu

+1

Ne yazık ki sıfır kapalı kalma süreleriyle yeniden yapılanma, Java dünyasında çok fazla çaba gerektirir :(Düzenleme: Will Bunu deneyin: http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jetty/ – tholu