{"id":22408987,"url":"https://github.com/stevenjdh/maven-version-checker","last_synced_at":"2026-04-11T02:57:41.032Z","repository":{"id":265640122,"uuid":"886944613","full_name":"StevenJDH/maven-version-checker","owner":"StevenJDH","description":"A GitHub action that checks for any available updates for maven dependencies and plugins.","archived":false,"fork":false,"pushed_at":"2024-11-30T09:26:11.000Z","size":133,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-11T05:27:02.098Z","etag":null,"topics":["actions","dependencies","java","maven","plugins","pom","update-checker"],"latest_commit_sha":null,"homepage":"","language":"C#","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/StevenJDH.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,"zenodo":null},"funding":{"github":"StevenJDH","custom":["https://www.paypal.me/stevenjdh","https://www.buymeacoffee.com/stevenjdh"]}},"created_at":"2024-11-11T22:26:31.000Z","updated_at":"2024-12-02T11:16:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"499acbd5-f856-4079-bcae-0bccf4984ec3","html_url":"https://github.com/StevenJDH/maven-version-checker","commit_stats":null,"previous_names":["stevenjdh/maven-version-checker"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/StevenJDH/maven-version-checker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenJDH%2Fmaven-version-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenJDH%2Fmaven-version-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenJDH%2Fmaven-version-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenJDH%2Fmaven-version-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StevenJDH","download_url":"https://codeload.github.com/StevenJDH/maven-version-checker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StevenJDH%2Fmaven-version-checker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264757137,"owners_count":23659313,"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":["actions","dependencies","java","maven","plugins","pom","update-checker"],"created_at":"2024-12-05T12:06:11.601Z","updated_at":"2026-04-11T02:57:41.004Z","avatar_url":"https://github.com/StevenJDH.png","language":"C#","funding_links":["https://github.com/sponsors/StevenJDH","https://www.paypal.me/stevenjdh","https://www.buymeacoffee.com/stevenjdh"],"categories":[],"sub_categories":[],"readme":"# GitHub Action: Maven Version Checker\n\n[![build](https://github.com/StevenJDH/maven-version-checker/actions/workflows/dotnet-action-sonar-container-workflow.yml/badge.svg?branch=main)](https://github.com/StevenJDH/maven-version-checker/actions/workflows/dotnet-action-sonar-container-workflow.yml)\n![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/StevenJDH/maven-version-checker?include_prereleases)\n[![Public workflows that use this action.](https://img.shields.io/endpoint?style=flat\u0026url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3DStevenJDH%2Fmaven-version-checker%26badge%3Dtrue)](https://github.com/search?o=desc\u0026q=StevenJDH+maven-version-checker+language%3AYAML\u0026s=\u0026type=Code)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/bf90a91bea9b47a7881ddacfac3a377c)](https://app.codacy.com/gh/StevenJDH/maven-version-checker/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Sonar Violations (long format)](https://img.shields.io/sonar/violations/StevenJDH_maven-version-checker?format=long\u0026server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=StevenJDH_maven-version-checker)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=StevenJDH_maven-version-checker\u0026metric=ncloc)](https://sonarcloud.io/summary/new_code?id=StevenJDH_maven-version-checker)\n![Maintenance](https://img.shields.io/badge/yes-4FCA21?label=maintained\u0026style=flat)\n![GitHub](https://img.shields.io/github/license/StevenJDH/maven-version-checker)\n\nMaven Version Checker is a GitHub action that checks for any available updates for maven dependencies and plugins in both single and multi-module projects. It has been compiled to native code using [Ahead-Of-Time (AOT)](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) compilation for increased performance and reduced memory usage. The native code is containerized using an Ubuntu-based [.NET Chiseled Container](https://devblogs.microsoft.com/dotnet/announcing-dotnet-chiseled-containers/) to further reduce the image size while significantly improving security and loading speeds. In fact, the base image is made up of only 6 files, which accounts for less than 10MB of the final image size. Do keep in mind that GitHub [only supports container actions on Linux runners](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#requirements-for-self-hosted-runner-machines), but as soon as this changes, support will be added.\n\n[![Buy me a coffee](https://img.shields.io/static/v1?label=Buy%20me%20a\u0026message=coffee\u0026color=important\u0026style=flat\u0026logo=buy-me-a-coffee\u0026logoColor=white)](https://www.buymeacoffee.com/stevenjdh)\n\n## Features\n\n* Supports single and multi-module Maven projects.\n* Checks for version updates in pom parent, dependencies, plugins, and addons configured in plugins.\n* Produces outputs that can be used for additional processing.\n* Summary reports are generated after each run.\n* Supports being ran locally or from another third-party pipeline.\n* Implements standard resilience strategies like retry, circuit breaker, etc.\n* Implements chaos strategies to test the resiliency of the application.\n\n## Compatibility\nBelow is a list of GitHub-hosted runners that support jobs using this action.\n\n| Runner     | Supported? | \n|------------|:----------:|\n| [![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=flat\u0026logo=ubuntu\u0026logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) | ✅ |\n| [![Windows](https://img.shields.io/badge/Windows-0078D6?style=flat\\\u0026logo=windows\\\u0026logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) | ⚠️ |\n| [![macOS](https://img.shields.io/badge/macOS-000000?style=flat\\\u0026logo=macos\\\u0026logoColor=F0F0F0)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) | ⚠️ |\n\n\u003e [!NOTE]  \n\u003e Windows and macOS is supported [locally](#locally) only.\n\n## Inputs\nThe following inputs are available:\n\n| Name                                         | Type     | Required | Default                      |  Description                                                       |\n|----------------------------------------------|----------|:--------:|:----------------------------:|--------------------------------------------------------------------|\n| \u003ca name=\"location\"\u003e\u003c/a\u003e[location](#location) | `string` | `false`  | \u003ccode\u003e.\u0026#xFEFF;/\u0026#xFEFF;pom.xml\u003c/code\u003e | Defines the location of the main pom.xml file for a maven project. |\n\n## Outputs\nThe following outputs are available:\n\n| Name                                                                    | Type     | Example(s) | Description                                              |\n|-------------------------------------------------------------------------|----------|:----------:|----------------------------------------------------------|\n| \u003ca name=\"has_updates\"\u003e\u003c/a\u003e[has_updates](#has_updates)                   | `string` | true       | Indicates whether or not artifact updates are available. |\n| \u003ca name=\"number_of_updates\"\u003e\u003c/a\u003e[number_of_updates](#number_of_updates) | `string` | 5          | Holds the number of artifact updates available.          |\n| \u003ca name=\"update_json\"\u003e\u003c/a\u003e[update_json](#update_json)                   | `json`   | {\"parents\"\u0026#xFEFF;:\u0026#xFEFF;[\"example:parent:2.0.0\"], \"dependencies\"\u0026#xFEFF;:\u0026#xFEFF;[\"foo:bar:2.0.0\"], \"plugins\"\u0026#xFEFF;:\u0026#xFEFF;[\"marco:polo:2.0.0\"]} | A map of grouped artifacts with updates in json format. Note: The `parents` field is maintained as an array so that processing can use the same code. |\n\n## Usage\nImplementing this action is relatively simple with just a few steps.\n\n```yaml\nname: 'build'\n\non:\n  push:\n    branches:\n    - main\n  pull_request:\n    branches:\n    - main\n    types: [opened, synchronize, reopened]\n  workflow_dispatch:\n    inputs:\n      reason:\n        description: 'The reason for running the workflow.'\n        required: true\n        default: 'Manual run'\n\njobs:\n  build:\n    name: Build\n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Check for Artifact Updates\n      id: maven-artifacts\n      uses: stevenjdh/maven-version-checker@v1\n      with:\n        location: './pom.xml'\n\n    - name: Display Action Outputs\n      run: |\n        echo \"Action Outputs:\"\n        echo \"- [has_updates]: ${{ steps.maven-artifacts.outputs.has_updates }}\"\n        echo \"- [number_of_updates]: ${{ steps.maven-artifacts.outputs.number_of_updates }}\"\n        echo \"- [update_json]: ${{ steps.maven-artifacts.outputs.update_json }}\"\n        echo \"\"\n        \n        echo \"Deserialized Update JSON:\"\n        echo \"- [parents][0]: ${{ fromJSON(steps.maven-artifacts.outputs.update_json).parents[0] }}\"\n        echo \"- [dependencies][0]: ${{ fromJSON(steps.maven-artifacts.outputs.update_json).dependencies[0] }}\"\n        echo \"- [plugins][0]: ${{ fromJSON(steps.maven-artifacts.outputs.update_json).plugins[0] }}\"\n        echo \"\"\n        \n        echo \"One approach to processing an array type field using bash:\"\n        for element in ${{ join(fromJSON(steps.maven-artifacts.outputs.update_json).plugins, ' ') }}; do\n            IFS=\":\" read -r groupId artifactId version \u003c\u003c\u003c \"$element\"\n            echo \"groupId: $groupId\"\n            echo \"artifactId: $artifactId\"\n            echo -e \"version: $version\\n\"\n        done\n```\n\n## Running locally or from another third-party pipeline\u003ca id='locally'\u003e\u003c/a\u003e\nSince this action is container-based, it can be ran locally or from another third-party pipeline like Azure Pipelines. To get started, create a [GitHub PAT](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with at least `read:packages` permissions from [here](https://github.com/settings/tokens/new?scopes=read:packages), and run the following commands from the root directory of a maven project:\n\n```bash\necho \u003cYOUR_GITHUB_PAT\u003e | docker login ghcr.io -u \u003cYOUR_GITHUB_USERNAME\u003e --password-stdin\ntouch summary.txt output.txt\n\ndocker run --name maven-version-checker --workdir=/data --rm \\\n  -e INPUT_LOCATION=\"./pom.xml\" \\\n  -e GITHUB_STEP_SUMMARY=\"./summary.txt\" \\\n  -e GITHUB_OUTPUT=\"./output.txt\" \\\n  -v \"$(pwd):/data\" \\\n  ghcr.io/stevenjdh/maven-version-checker:latest\n```\n\nIf all goes well, the `summary.txt` and `output.txt` files will be updated so that they can be leveraged for further processing.\n\n\u003e [!IMPORTANT]  \n\u003e When running outside of GitHub, ensure that the `summary.txt` and `output.txt` files exist or are created before running the application.\n\nAlternatively, compile the code for the target system using a matching [Runtime Identifier (RID)](https://learn.microsoft.com/en-us/dotnet/core/rid-catalog#known-rids) as in one of the command line examples below. The [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) also needs to be installed in order to compile the code, which may be already included as part of the needed AOT [Prerequisites](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=windows%2Cnet8#prerequisites) for the target system.\n\n**Linux**\n\n```bash\ngit clone https://github.com/StevenJDH/maven-version-checker.git\ncd maven-version-checker\ndotnet publish -r linux-x64 -c Release --property:PublishDir=./bin/Publish\ncd MavenVersionChecker.Action/bin/Publish\n\nexport INPUT_LOCATION=\"./../../../MavenVersionChecker.Action.Tests/Sample/Multi/pom.xml\"\nexport GITHUB_STEP_SUMMARY=\"./Locals/summary.txt\"\nexport GITHUB_OUTPUT=\"./Locals/output.txt\"\n\n./MavenVersionChecker.Action\n```\n\n**Windows**\n\n```batch\ngit clone https://github.com/StevenJDH/maven-version-checker.git\ncd maven-version-checker\ndotnet publish -r win-x64 -c Release --property:PublishDir=./bin/Publish\ncd MavenVersionChecker.Action\\bin\\Publish\n\nset INPUT_LOCATION=./../../../MavenVersionChecker.Action.Tests/Sample/Multi/pom.xml\nset GITHUB_STEP_SUMMARY=./Locals/summary.txt\nset GITHUB_OUTPUT=./Locals/output.txt\n\nMavenVersionChecker.Action.exe\n```\n\n**macOS (Apple Silicon)**\n\n```bash\ngit clone https://github.com/StevenJDH/maven-version-checker.git\ncd maven-version-checker\ndotnet publish -r osx-arm64 -c Release --property:PublishDir=./bin/Publish\ncd cd MavenVersionChecker.Action/bin/Publish\n\nexport INPUT_LOCATION=\"./../../../MavenVersionChecker.Action.Tests/Sample/Multi/pom.xml\"\nexport GITHUB_STEP_SUMMARY=\"./Locals/summary.txt\"\nexport GITHUB_OUTPUT=\"./Locals/output.txt\"\n\n./MavenVersionChecker.Action\n```\n\n## Enabling the chaos strategies\nTo enable the chaos strategies, set an environment variable called `ASPNETCORE_ENVIRONMENT` to `Chaos` and restart the application. If using Visual Studio or another compatible IDE, select the `ChaosConsole (Multi)` profile before running the code. The table below shows the supported chaos strategies being used to test the standard resilience strategies and the business logic around it.\n\n|Strategy | Type      | What does the strategy do?                                     |\n|:--------|:----------|:---------------------------------------------------------------|\n| Fault   | Proactive | Injects exceptions into the system.                            |\n| Latency | Proactive | Injects latency into executions before the calls are made.     |\n| Outcome | Reactive  |\tInjects fake outcomes (results or exceptions) into the system. |\n\n## Disclaimer\nMaven Version Checker is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n## Contributing\nThanks for your interest in contributing! There are many ways to contribute to this project. Get started [here](https://github.com/StevenJDH/.github/blob/main/docs/CONTRIBUTING.md).\n\n## Do you have any questions?\nMany commonly asked questions are answered in the FAQ:\n[https://github.com/StevenJDH/maven-version-checker/wiki/FAQ](https://github.com/StevenJDH/maven-version-checker/wiki/FAQ)\n\n## Want to show your support?\n\n|Method          | Address                                                                                   |\n|---------------:|:------------------------------------------------------------------------------------------|\n|PayPal:         | [https://www.paypal.me/stevenjdh](https://www.paypal.me/stevenjdh \"Steven's Paypal Page\") |\n|Cryptocurrency: | [Supported options](https://github.com/StevenJDH/StevenJDH/wiki/Donate-Cryptocurrency)    |\n\n\n// Steven Jenkins De Haro (\"StevenJDH\" on GitHub)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenjdh%2Fmaven-version-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevenjdh%2Fmaven-version-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenjdh%2Fmaven-version-checker/lists"}