Maven content check plugin — JARy pod kontrolou
V HP i GoodData jsme řešili problém s obsahem našich WARu, EARu a dalších distribučních balíčků, ve kterých se nám poměrně neřízeným procesem objevovaly nové JARy, což při použití tranzitivních závislostí v Mavenu není jev zas až tolik vzácný. To byl problém ze dvou důvodů.
- problémy s některýmy OSS licencemi. Pokud do vašeho produktu zatáhnete nějakou knihovnu s virální licencí může to znamenat, že vlastní zdrojový kód musíte open sourcovat pod tou samou licencí. Jiné licence mají zase problém s tím, že se na ně váže IP, především patenty. Pokud použijete licenci, která má určitý výklad týkající se patentů, může se stát, že se tím automatický vzdáváte vámi držených patentů souvisejících s danou knihovnou.
- problémy s tím, že někdo se rozhodně použít knihovnu XYZ a vy přitom ve zbytku produktu používáte knihovny jinou.
Tyto problémy se dají vyřešit poměrně jednoduchým způsobem. Máte autoritativní seznam souborů, který se může v daném archivu vyskytovat. Tento seznam kontroluje Maven Content Check Plugin a v případě, že archív obsahuje něco jiného, build selže s detailním výstupem, které konkrétní soubory nesedí. Konfigurace pluginu a formát autoritativního seznamu najdete v dokumentaci.
Plugin toho zatim moc neumí, za zmíňku stojí
- dokáže ignorovat JARy, které produkujete vy a to podle obsahu jejich manifestu
- dokáže reportovat i reverzní případ tedy že nějaké chybí
V dalších verzích pluginů se plánuje iniciální generování autoritativního seznamu podle obsahu archívu. Detekce typu licence pro daný JAR a její vypsání.
Související články
Související epizody CZ Podcastu
- #261 · Leadership
O vedení lidí a týmů.
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.