Dynamické cesty ke třídě představují nový způsob, jak PDE v Eclipse 3.0 vypočítává cestu sestavení pro projekty modulu plug-in.
Otázka: Co je to stabilita cesty ke třídě?
Odpověď: Stabilita cesty ke třídě je míra toho, jak se mění cesta ke třídě s ohledem
na vývojářem zvolený způsob použití samostatného hostitelského systému. V ideálním případě by cesta měla zůstat beze změn
bez ohledu na celek zdrojových projektů v pracovním prostoru. Použití samostatného hostitelského systému binárních projektů nabízí dobrou stabilitu cesty ke třídě, neboť všechny cesty ke třídě obsahují pouze odkazy na projekty. U použití samostatného hostitelského systému externích modulů plug-in je stabilita cest ke třídě již menší. Vzhledem k místnímu umístění instalace externích knihoven je stabilita dostatečná,
avšak seznam modulů plug-in coby zdrojových projektů musí zůstat identický
pro všechny členy týmu, aby mohly být sdíleny prostřednictvím úložiště.
Od verze 2.0 se přidáním verze modulu plug-in k umístění modulu plug-in v systému souborů stabilita cesty ke třídě ještě více snížila v případech, kde byly použity externí moduly plug-in.
Otázka: Pokud binární projekty nabízejí lepší stabilitu cesty ke třídě, proč je nepoužívat výhradně?
Odpověď: Použití samostatného hostitelského systému pomocí importovaných binárních projektů je vhodnou volbou pouze tehdy,
pokud počet importovaných modulů plug-in není příliš vysoký (max. několik desítek). U produktů
se stovkami modulů plug-in nepřipadá import ve velkém v úvahu.
Vývojové týmy v takových případech obvykle aplikují spolu s několika zdrojovými projekty samostatný hostitelský systém,
několik desítek přímo souvisejících binárních projektů a vše ostatní jsou externí moduly plug-in.
Z čistě teoretického hlediska by bylo dosti podivné plýtvat časem a prostředky na importy
stovek externích modulů plug-in jen kvůli tomu, aby bylo možno zkompilovat několik zdrojových projektů.
Otázka: Domnívám se, že metoda použití samostatného hostitelského systému (binární projekty/externí moduly plug-ins) je lepší. Co je na tom špatného, používáme-li ji v našem týmu společně?
Odpověď: Použitím statických cest (ať již jsou to binární projekty, nebo externí moduly plug-in)
je vaše volba metody použití samostatného hostitelského systému jednou provždy určena a nutí tím všechny ostatní, aby ji také používali.
Otázka: Co jsou to dynamické cesty ke třídě?
Odpověď: Dynamické cesty ke třídě je funkce PDE, pomocí které je v projektu
modulu plug-in ta část cesty ke třídě, která se týká závislostí modulů plug-in,
dynamicky vypočítávána pomocí technologie pořadače cest ke třídě JDT. Řešení dynamických cest ke třídě je prováděno vždy až v potřebném okamžiku a vždy odpovídá aktuálním podmínkám v pracovního prostoru.
Dynamický způsob řešení cest ke třídě navíc umožňuje PDE přizpůsobovat se
změnám a vždy mít k dispozici správnou cestu ke třídě, bez ohledu na použitou metodu samostatného hostitelského systému.
Otázka: Jakou má metoda dynamických cest ke třídě stabilitu?
Odpověď: Absolutní. Jelikož jsou všechny vstupy u požadovaných modulů plug-in nahrazovány jedním
vstupem z pořadače cesty ke třídě, vaše cesta ke třídě je tím pádem stále stejná.
Otázka: Jakou výhodu mi mohou poskytnout dynamické cesty ke třídě?
Odpověď: U dynamických cest ke třídě není nutné se předem rozhodovat pro konkrétní způsob
použití samostatného hostitelského systému.
Pokud budou přítomny binární projekty, dynamické
cesty ke třídě nasměrují cestu k odkazům projektu. V opačném případě bude cesta nasměrována k
souborům JAR externích modulů plug-in. Současně s tím, jak jsou binární projekty přidávány či odebírány,
dynamické cesty ke třídě veškeré změny sledují a přizpůsobují se jim. Už nikdy nebudete muset
provádět aktualizaci cesty ke třídě. Další výhodou je, že budou-li jiné týmy chtít převzít některé vaše
projekty z CVS a zkompilovat je, nebudou muset současně přebírat i váš způsob použití samostatného hostitelského systému.
Otázka: Jestliže je to jádro PDE, které realizuje řešení dynamických cest ke třídě, znamená to,
že budeme v této věci zcela závislí na PDE?
Odpověď: Je tomu skutečně tak. V případě použití dynamických cest ke třídě, bude cesta vždy vypočítávána
v reálném čase a nikoli napevno zadána v souboru .classpath (právě v tom spočívá celý trik).
Nicméně vezměte v úvahu následující: PDE používá k výpočtu cesty ke třídě sofistikovaný algoritmus, který se snaží docílit výkonu, který se bude co nejvíce blížit podmínkám běhu programu v reálném čase.
To co kompilátor JDT 'vidí' během fáze vývoje, by se mělo co nejvíce blížit tomu,
co vidí zavaděč tříd při běhu programu. Jádro PDE je ve většině případů
schopno postarat se o to, aby byla cesta ke třídě aktuální, a to mnohem lépe než vy. Pokud
jste před samotnou kompilací nuceni manuálně upravovat cestu ke třídě, pravděpodobně
máte nějakou chybu v nastavení a váš modul plug-in nejspíš nepoběží správně (to neplatí pro tým SWT).
Otázka: V našem týmu používáme pro samostatný hostitelský systém výhradně binární projekty. Jsou s přechodem
na dynamické cesty ke třídě spojeny nějaké nevýhody?
Odpověď: Ne. Dynamické cesty ke třídě vás nenutí k nějakému konkrétnímu způsobu použití samostatného hostitelského systému.
Jejich jedinou funkcí je vyřešit vztahy závislostí modulů plug-in v daném kontextu.
Pokud i nadále budete externí moduly plug-in importovat jakožto binární projekty, dynamické
cesty ke třídě budou cestu směrovat na odkazy projektu, stejně jako předtím.
Otázka: Co potřebuji k aktivaci dynamických cest ke třídě?
Odpověď: Pouze jedinou aktualizaci cest ke třídě u všech modulů plug-in verze 2.1. Cesty ke třídě budou viditelně kratší
a odkazy na veškeré závislé moduly plug-in budou nahrazeny jedním vstupem z pořadače. Můžete
normálně pokračovat v práci. Nezapomeňte provést záznam o zdrojových projektech do
úložiště, to se týká i pozměněných souborů .classpath.
Otázka: Co když používám v cestě ke třídě přídavné položky pro účely kompilace úloh/servletů/JSP stránek Ant.
Odpověď: Při výpočtu cesty ke třídě bere PDE v úvahu mimo jiné i vlastnost 'jars.extra.classpath'
v souboru build.properties. Pokud je vše správně nastaveno pro
sestavení, PDE vygeneruje správnou cestu ke třídě.
Otázka: Jakým způsobem lze manipulovat s položkami dynamicky vypočítané cesty ke třídě?
Odpověď: Ve velmi nepravděpodobném případě, kdy by bylo nutné nějakým způsobem manipulovat
s položkami dynamické cesty ke třídě, můžete tak učinit v kartě Vlastnosti>Cesta sestavení Java>Knihovny. Rozvinutím
uzlu 'Závislosti modulů plug-in' se dostanete k položkám.
Otázka: Některé vypočtené položky pro knihovny nemají připojení zdroje.
Mohu je doplnit manuálně?
Odpověď: PDE vypočte připojení zdroje pro většinu knihoven. V jistých zvláštních
případech může automatické generování připojení zdroje selhat vinou nedodržení
pravidel pro pojmenování u zdrojových ZIP souborů. V takovém případě lze provést připojení zdroje u položky manuálně,
a sice v dialogovém okně vlastností cesty sestavení.
Otázka: Budou takováto manuálně nastavená připojení zdroje odstraněna v okamžiku, kdy PDE
provede dynamický výpočet cesty ke třídě?
Odpověď: Nikoli. PDE vede tyto manuální záznamy v patrnosti a aplikuje je vždy
po dynamickém výpočtu, pokud ovšem nedošlo ke změně cesty ke knihovně.
Otázka: Patřím k vývojovému týmu SWT. Můžeme používat dynamické cesty k třídě?
Odpověď: Bohužel, ne. Tým SWT používá pro použití samostatného hostitelského systému unikátní nastavení, kdy jsou v projektu cesty ke třídě pro různá prostředí ukládány do úložiště a přejmenovány na .classpath, v závislosti na použité pracovní platformě. Z tohoto důvodu SWT nezbývá než zůstat u stávajících metod použití samostatného hostitelského systému.