2010-03-03 9 views
14

Mam projekt Spring Roo i używam mvn jetty:run do uruchomienia mojej aplikacji. Jedynym problemem jest to, że zmiany w klasach *.java nie są uruchamiane na gorąco, podczas gdy zmiany na *.jspx są wykonywane na gorąco.Hot Deploy w osadzonym pomoście

Jak skonfigurować mvn jetty do hotdeploy dla klas java?

Odpowiedz

22

Musisz ustawić scanIntervalSeconds na wartość większą niż 0, aby włączyć go:

scanIntervalSeconds - Interwał w sekundach, aby zeskanować webapp zmiany iw razie potrzeby zrestartować kontekst. Ignorowane, jeśli ponowne ładowanie jest włączone. Domyślnie wyłączone. Wartość domyślna jest: 0.

Więc potęga konfiguracja wygląda następująco:

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

Po włączeniu wtyczki pomost Maven skanuje katalogu określonym w classDirecory (co wskazuje na ${project.build.outputDirectory} przez domyślne tj. target/classes) dla zmian.

Po prostu musisz mieć swoje klasy kompilacji IDE w target/classes (lub uruchomić mvn compile), a Jetty wznowi kontekst po zmianach klas Java.

+0

Wielkie dzięki! :) – portoalet

+0

Wystąpiło 404 błędów, podczas gdy Jetty przestawia klasy. Wszelkie sugestie, jak ich uniknąć? Zobacz także to pytanie: http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment – tholu

+1

Niestety przeniesienie z zerowym czasem przestoju wymaga dużego wysiłku w świecie Java :(Edit: Will spróbuj tego: http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jetty/ – tholu

Powiązane problemy