{"id":21347049,"url":"https://github.com/yann39/maven-dependency-extractor","last_synced_at":"2026-05-10T00:43:57.712Z","repository":{"id":222546736,"uuid":"753070623","full_name":"Yann39/maven-dependency-extractor","owner":"Yann39","description":"Simple Python program that parses Maven POM files to extract dependency versions","archived":false,"fork":false,"pushed_at":"2024-03-08T19:07:16.000Z","size":83,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T00:42:00.298Z","etag":null,"topics":["bootstrap","maven","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yann39.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-05T12:13:00.000Z","updated_at":"2024-02-18T11:01:40.000Z","dependencies_parsed_at":"2024-11-22T02:12:37.581Z","dependency_job_id":"a31cf49d-68fb-4743-8072-4e3fa9a2bde6","html_url":"https://github.com/Yann39/maven-dependency-extractor","commit_stats":null,"previous_names":["yann39/maven-multi-projects-dependencies-extractor"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fmaven-dependency-extractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fmaven-dependency-extractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fmaven-dependency-extractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fmaven-dependency-extractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yann39","download_url":"https://codeload.github.com/Yann39/maven-dependency-extractor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243822277,"owners_count":20353499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","maven","python"],"created_at":"2024-11-22T02:12:28.259Z","updated_at":"2026-05-10T00:43:57.673Z","avatar_url":"https://github.com/Yann39.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Maven dependency extractor\n\nSimple **Python** program that parses **Maven** POM files to build a table of dependency versions.\n\n![Static Badge](https://img.shields.io/badge/Version-1.0.5-2AAB92)\n![Static Badge](https://img.shields.io/badge/Last%20update-27%20Jan%202020-blue)\n\n![Static Badge](https://img.shields.io/badge/Python-3.4.4-yellow)\n![Static Badge](https://img.shields.io/badge/Bootstrap-3.4.4-purple)\n\n---\n\n# Table of Contents\n\n* [About the Project](#about-the-project)\n* [Prerequisites](#prerequisites)\n* [Usage](#usage)\n* [Output](#output)\n* [License](#license)\n\n# About the Project\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Maven logo\" src=\"doc/logo-maven.svg\" height=\"48\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Python logo\" src=\"doc/logo-python.svg\" height=\"64\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg alt=\"Bootstrap logo\" src=\"doc/logo-bootstrap.svg\" height=\"62\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nThis project simply consists of a very basic **Python** program that parses multiple remote **Maven** projects (POM files)\nto extract versions of some dependencies and build a summary table.\n\nIt is very basic and was just intended to help me visualize the main dependencies of my Maven projects in a single view,\nof course it would need a lot of refactoring and improvements to be a real production tool.\n\n# Prerequisites\n\nPOM files must be valid POM format and contains the namespace `http://maven.apache.org/POM/4.0.0`.\n\nYou must have `\u003cartifactId\u003e` and `\u003cversion\u003e` nodes under your `\u003cproject\u003e` node.\n\nAll dependencies versions should be inside a `\u003cproperties\u003e` node.\n\nExample :\n\n```xml\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\"\u003e\n    \u003cartifactId\u003emy-project\u003c/artifactId\u003e\n    \u003cversion\u003e2.1.1\u003c/version\u003e\n\n    \u003cproperties\u003e\n        \u003cspring.boot.version\u003e2.2.2.RELEASE\u003c/spring.boot.version\u003e\n        \u003czk.version\u003e9.0.0\u003c/zk.version\u003e\n        \u003ccommons-lang3.version\u003e3.9\u003c/commons-lang3.version\u003e\n        ...\n    \u003c/properties\u003e\n\n    ...\n\n\u003c/project\u003e\n```\n\n# Usage\n\nIn the `read_pom.py` file :\n1. Modify `repositories_list` variable to include your repositories\n2. Modify `dependencies_versions_list` variable to include your artifact ids and versions (for each dependency you can set latest version and a minimum required version) \n3. Modify `authentication_data` variable to include your credentials to connect to your repositories\n\nThen simply run the `read_pom.py` file.\n\n# Output\n\nIt generates an HTML file in the project directory named `versions.html`.\n\nFor each dependency, the version will be display as a badge with the right color :\n- :green_circle: green if dependency is up-to-date (latest version)\n- :orange_circle: orange if dependency is not up-to-date but meets the minimum required version\n- :red_circle: red if dependency is out of date (does not even meet the minimum required version)\n\nHere is an example output :\n\n![Generated HTML file](doc/output.png \"Generated HTML file\")\n\n# License\n\n[General Public License (GPL) v3](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\neven the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n    \nYou should have received a copy of the GNU General Public License along with this program.  If not,\nsee \u003chttp://www.gnu.org/licenses/\u003e.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Fmaven-dependency-extractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyann39%2Fmaven-dependency-extractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Fmaven-dependency-extractor/lists"}