dc.contributor.advisor | Kožusznik, Jan | |
dc.contributor.author | Kynický, Ondřej | |
dc.date.accessioned | 2025-06-23T11:48:53Z | |
dc.date.available | 2025-06-23T11:48:53Z | |
dc.date.issued | 2025 | |
dc.identifier.other | OSD002 | |
dc.identifier.uri | http://hdl.handle.net/10084/156729 | |
dc.description.abstract | Tato bakalářská práce se zabývá návrhem a implementací nástroje pro správu verzí multimodulárních Maven projektů. Hlavním cílem je automatizovat dosud časově náročný úkol – povýšení verze jednoho modulu a propagaci této změny do všech souvisejících závislostí. Jádrem řešení je vnitřní reprezentace celého multimodulárního projektu:
pro každý modul se ukládají jeho groupId, artifactId, verze a všechny přímé deklarace z bloků <dependencies> i <dependencyManagement> v souborech pom.xml. Tranzitivní závislosti si aplikace dopočítá, vloží je do stejného modelu a dále s nimi pracuje, jako by byly explicitně uvedené.
Systém je vystavěn jako rozšiřitelná Java aplikace využívající Maven Invoker a plugin org.codehaus.mojo:versions, takže každá funkcionalita (např. hledání zastaralých knihoven, hromadné povýšení verzí) je implementována jako samostatná servisní funkce.
Referenční implementace poskytuje REST API (a Swagger UI) s operacemi: načtení struktury projektu, analýza zastaralých interních i externích knihoven, automatické zvýšení verze vybraného modulu včetně aktualizace všech jeho referencí a kontrolu konfliktů tranzitivních závislostí.
Praktickou užitečnost nástroje je testování nad veřejně dostupným projektem (open-source), kde se ukazuje, že automatizovaný postup zvládne aktualizaci závislostí na jedno kliknutí, místo aby byla prováděna ručně. | cs |
dc.description.abstract | In this bachelor’s thesis, the author designs and implements a tool for version management of multi-module Maven projects. The main goal is to automate a previously time-consuming task – increasing the version of a single module and propagating this change to all related dependencies.
At the core of the solution is an internal representation of the entire multi-module project: for each module, its groupId, artifactId, version, and all direct declarations from the <dependencies> and <dependencyManagement> sections of the POM files are stored. Transitive dependencies are computed by the application, inserted into the same model, and subsequently processed as if they were declared explicitly.
The system is built as an extensible Java application using Maven Invoker and the org.codehaus.mojo:versions plugin, with each feature (e.g., identifying outdated libraries, bulk version upgrades) implemented as an independent service.
The reference implementation exposes a REST API (with Swagger UI) offering operations for loading the project structure, analyzing outdated internal and external libraries and automatically increasing the version of a selected module (including updating all its references).
The practical usefulness of the tool is demonstrated on a publicly available open-source project, where the automated workflow successfully updates dependencies with a single click, replacing what was previously a manual process. | en |
dc.format.extent | 2859865 bytes | |
dc.format.mimetype | application/pdf | |
dc.language.iso | cs | |
dc.publisher | Vysoká škola báňská – Technická univerzita Ostrava | cs |
dc.subject | Maven | cs |
dc.subject | Java | cs |
dc.subject | Multi-modulový projekt | cs |
dc.subject | Maven | en |
dc.subject | Java | en |
dc.subject | Multi-module project | en |
dc.title | Nástroj pro správu verzí multimodulárních Maven projektů | cs |
dc.title.alternative | Version Control Tool for Multimodular Maven Projects | en |
dc.type | Bakalářská práce | cs |
dc.contributor.referee | Ježek, David | |
dc.date.accepted | 2025-06-03 | |
dc.thesis.degree-name | Bc. | |
dc.thesis.degree-level | Bakalářský studijní program | cs |
dc.thesis.degree-grantor | Vysoká škola báňská – Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky | cs |
dc.description.department | 460 - Katedra informatiky | cs |
dc.thesis.degree-program | Informatika | cs |
dc.description.result | dobře | cs |
dc.identifier.sender | S2724 | |
dc.identifier.thesis | KYN0010_FEI_B0613A140014_2025 | |
dc.rights.access | openAccess | |