Zdravím konferenci,

začali jsme nový projekt na Mavenu a narazil jsem na následující komplikaci v 
porovnání s dosavadním řízením pomocí Antu. Používáme Maven 2, Eclipse a Tomcat 
s pluginy Sysdeo a m2eclipse.

U antovských projektů jsme měli v kořenovém adresáři projektu adresář 
/web/WEB-INF/classes, který byl nastaven jako Default output folder na Java 
Build Path v Eclipse. Protože obsah adresáře /web měl strukturu waru (jako by 
šlo o rozbalený war), byl na něj pro vývoj namířen i atribut docBase v 
context.xml Tomcatu, takže při změnách tříd za běhu se redeploynula aplikace 
(myslím pouze změny v implementaci, ne strukturální).

Po přechodu na Maven + m2eclipse plugin zjišťuji, že Default output folder je 
nyní /target/classes, předpokládám, že tento adresář je určen nastavením 
build/outputDirectory v pomu. Při buildování waru (spuštění fáze package na 
projektu s packagingem war) se nejprve vytvoří struktura waru v adresáři 
/target/nazevprojektu a tento adresář se pak zabalí do souboru 
/target/nazevprojektu.war. Classy jsou do waru zkopírovány z /target/classes. 
Nemohu už tedy /target/classes využít pro docBase, protože již nejsou součástí 
WEB-INF. A pokud namířím docBase na /target/nazevprojektu, pak zas není editace 
tříd za běhu tak pohodlná jako dřív - změny se sice pronesou do běžící 
aplikace, ale už ne z target/classes do target/nazevprojektu/WEB-INF/classes, 
takže mezi restarty Tomcatu se musí myslet na spuštění fáze package.

Protože momentálně považuji za příčinu problému zdvojení adresáře s třídami, 
opravil jsem v pomu build/outputDirectory a v Eclipse projektu Default output 
folder na /target/nazevprojektu/WEB-INF/classes. Tím pádem Eclipse kompiluje 
vše zas do stejného adresáře, do jakého je nasměrován Tomcat a Maven při tvorbě 
waru má o jedno kopírování míň. Funguje to, přesto bych poprosil o názor někoho 
zkušenějšího v Mavenu, případně zda je zvykem to řešit jinak a jak. 

Děkuji za každou odpověď.

Tomáš Záluský



================================================
...with Ultimate flying is so easy...
http://www.frisbee.cz    http://www.peaceegg.net
================================================

Odpovedet emailem