RepoMicrosoftMicrosoftpublished Jun 2, 2026seen 5d

microsoft/maven-winget

Python

Open original ↗

Captured source

source ↗
published Jun 2, 2026seen 5dcaptured 13hhttp 200method plain

microsoft/maven-winget

Language: Python

License: MIT

Stars: 0

Forks: 0

Open issues: 0

Created: 2026-06-02T17:44:54Z

Pushed: 2026-06-02T20:18:03Z

Default branch: main

Fork: no

Archived: no

README:

maven-winget

![Validate](https://github.com/microsoft/maven-winget/actions/workflows/validate.yml) ![Update Maven manifests](https://github.com/microsoft/maven-winget/actions/workflows/update-manifests.yml) ![Publish to winget-pkgs](https://github.com/microsoft/maven-winget/actions/workflows/publish-winget-pkgs.yml)

WinGet packaging for the official Apache Maven binary ZIP distributions.

This repository tracks releases published by the Apache Maven project, generates WinGet manifests from the official Maven ZIP archives, and validates that those manifests remain in sync. It does not build Maven from source.

Why this repository exists

Windows developers should be able to install Apache Maven from WinGet using artifacts published by the Maven team itself. This repository keeps that flow simple:

  • consume official Apache Maven ZIP binaries only
  • generate WinGet manifests in-repo for review
  • track stable and preview Maven lines separately
  • automate updates when new Maven releases appear upstream

Packages

| Package | Track | Alias | Notes | | --- | --- | --- | --- | | Apache.Maven | Stable Maven 3 | mvn | Recommended for most users | | Apache.Maven.Preview | Preview Maven 4 | mvn4 | Separate alias to avoid collisions with stable Maven |

Current tracked releases

| Package | Version | Upstream ZIP | | --- | --- | --- | | Apache.Maven | 3.9.16 | https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.zip | | Apache.Maven.Preview | 4.0.0-rc-5 | https://dlcdn.apache.org/maven/maven-4/4.0.0-rc-5/binaries/apache-maven-4.0.0-rc-5-bin.zip |

How it works

1. tools/update_maven_manifests.py reads Maven Central metadata for org.apache.maven:apache-maven. 2. It finds the latest stable Maven 3 release and latest Maven 4 preview release candidate. 3. It downloads the official ZIP archives and computes the SHA256 hashes required by WinGet. 4. It generates WinGet multi-file manifests under manifests/.

Repository layout

.github/workflows/ CI and scheduled update workflows
manifests/ Generated WinGet manifests
tools/update_maven_manifests.py Manifest generator
tests/ Unit tests for parsing and generation
specs/PLAN.md Planning and design notes

Development

Regenerate manifests:

python3 tools/update_maven_manifests.py

Run tests:

python3 -m unittest discover -s tests -p 'test_*.py' -v

Automation

  • validate.yml runs tests, regenerates manifests, verifies committed output is current, and runs winget validate on generated version manifests.
  • update-manifests.yml runs on a schedule or manually, validates generated manifests with winget validate, and opens a pull request when tracked releases change.
  • publish-winget-pkgs.yml runs on a schedule, on main pushes that change manifests/**, or manually. It submits missing Maven package versions to microsoft/winget-pkgs via wingetcreate submit.

Required secret for publishing

publish-winget-pkgs.yml requires a repository secret:

  • WINGET_CREATE_GITHUB_TOKEN: GitHub Personal Access Token (classic) with public_repo scope (as required by WingetCreate) so the workflow can create PRs in microsoft/winget-pkgs.

FAQ

Why is Maven 4 a separate package?

Maven 4 is still published upstream as a preview / release candidate line. Keeping it in Apache.Maven.Preview with the mvn4 alias avoids command conflicts and lets users keep stable Maven 3 installed as mvn.

Why use ZIP packages instead of rebuilding Maven?

The goal is to distribute the official Apache Maven binaries through WinGet, not to produce a separate downstream build. Using the published ZIP archives preserves the upstream release artifacts.

Where do the artifacts come from?

Version discovery and download endpoints used by this repository:

  • https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/maven-metadata.xml
  • https://downloads.apache.org/maven/
  • https://dlcdn.apache.org/maven/

Contributing

Issues and pull requests are welcome. If you change generation logic, regenerate manifests and run the test suite before submitting.

Planning

Project planning and design notes live in [specs/PLAN.md](specs/PLAN.md).

Notability

notability 3.0/10

Routine new repo by Microsoft