V Gradlu v bloku dependencies {...}
je možné zadat závislost a hlavně také, kdy jsou tyto závislosti potřeba (níže zmíněnou kofiguraci přidává Java plugin). Knihovny, které potřebujete jak pro kompilaci a tak pro běh, zadáte jako implementation
(dříve compile
). Pokud danou závislost potřebujete pouze při kompilaci použijete compileOnly
, pokud pouze v runtime tak runtimeOnly
.
Zde je jednoduchý příklad. Mám projekt v Kotlinu a v rámci tohoto projektu používám knihovnu Klaxon pro parsování json. Tuto knihovnu potřebuji jak při kopilaci, tak při běhu programu. Použiji tedy
implementation("com.beust:klaxon:5.0.9")
Pokud bych použil runtimeOnly
, projekt by se nezkompiloval. Pokud bych použil compileOnly
, projekt by se sice zkompiloval, ale po spuštění, když by chtěl použít knihovnu Klaxon, by skončil chybou.