Jetty Maven plugin & multi-module web aplikace

publikováno: 30.5.2013

V případě, že se Váš Maven projekt skládá z více modulů (jako zde: http://docs.codehaus.org/display/MAVENUSER/Multi-modules+projects) a chcete používat Jetty server, pak velice rychle zjistíte, že na toto Jetty plugin out-of-the box nefunguje, protože nezvládne dotáhnout dependency z modulů. Je nutné použít konfiguraci pluginu, která je uvedena níže.

Navíc pokud používáte Spring, pak tato funkcionalita funguje pouze pro Jetty 8.X a bude opět fungovat od Jetty 9.0.4 (tato verze v době psaní této novinky zatím nevyšla). V Jetty 9.0.X je chyba, kvůli které se při reloadu aplikace nenačítají listenery (a u Spring webové aplikace se používá ContextLoaderListener pro definici root kontextu).

Tuto konfiguraci dejte do parent pom.xml:

<plugin>
 <groupId>org.mortbay.jetty</groupId>
 <artifactId>jetty-maven-plugin</artifactId>
 <version>8.1.8.v20121106</version>
 <configuration>
<!-- interval hlidani zmen ve tridach aplikace -->
  <scanIntervalSeconds>3</scanIntervalSeconds>
  <webAppConfig>
<!-- context web. aplikace -->
   <contextPath>/eshop-web</contextPath>
<!-- vlozi moduly do classpath -->
<!-- tato aplikace ma tri moduly: -->
<!-- eshop-web, eshop-service, eshop-repository -->    <extraClasspath>
eshop-web/target/classes;
eshop-service/target/classes;
eshop-repository/target/classes
</extraClasspath>   </webAppConfig>
<!-- pri zmene tridy se provede redeploy web. aplikace -->
  <scanTargets>
   <scanTarget>eshop-web/target/classes</scanTarget>    <scanTarget>eshop-service/target/classes</scanTarget>    <scanTarget>eshop-repository/target/classes</scanTarget>   </scanTargets>
<!-- kde jsou HTML / JSP soubory web. aplikace -->
  <webAppSourceDirectory>eshop-web/src/main/webapp</webAppSourceDirectory>
 </configuration>
</plugin>

Aplikaci poté spustíte pomocí:

mvn compile jetty:run

Poznámka: Maven goal compile Vaši aplikaci zkompiluje (vytvoří adresář target s podadresářem classes) a jetty:run spustí embeddovaný Jetty server.

Poznámka: Tuto funkcionalitu také nabízí Eclipse plugin Run-Jetty-Run, který je možné nainstalovat z Eclipse Marketplace.

Reference

Skoleni bylo kazdopadne prinosne, i kdyz ve Springu uz chvilku delam, dodalo mi to kontext a hlubsi porozumeni. Libil se mi i prehled dalsich frameworku, jejich prakticke vyuziti a ze

Daniela

Školení bylo profesionální jako vždy (přesto v přátelském a otevřeném duchu). Je vidět, že Jirka je v dané problematice jako ryba ve vodě a neustále se posouvá kupředu, k čemuž

Aleš

Se školením jsem byl naprosto spokojen. Výborný poměr teorie a praxe. Vypíchl bych i přístup školitele k probírané problematice, znalosti a zkušenosti. Je vidět, že Jirka je velký fanoušek Javy

Václav


Novinky

14.2.2018: DNSSEC & Forpsi & Turris Omnia
Problémy kombinace lepší security a Forpsi

22.1.2018: FYI: PrimeFaces 5 Remote Code Execution
Pokud používáte PrimeFaces 5, tak jste možná byli hacknuti

16.11.2017: Java 9 přednáška
Na JavaDays 2017 jsem měl přednášku na téma Java 9, o kterou bych se rád podělil