{"id":47783082,"url":"https://github.com/fluxzero-io/lychee-maven-plugin","last_synced_at":"2026-04-03T13:56:26.154Z","repository":{"id":340111936,"uuid":"1164639155","full_name":"fluxzero-io/lychee-maven-plugin","owner":"fluxzero-io","description":"Maven plugin that wraps lychee link checker","archived":false,"fork":false,"pushed_at":"2026-03-30T23:47:33.000Z","size":95,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T01:39:29.808Z","etag":null,"topics":["link-checker","lychee","maven-plugin"],"latest_commit_sha":null,"homepage":"https://fluxzero-io.github.io/lychee-maven-plugin/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fluxzero-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T10:13:16.000Z","updated_at":"2026-03-30T23:47:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fluxzero-io/lychee-maven-plugin","commit_stats":null,"previous_names":["fluxzero-io/lychee-maven-plugin"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fluxzero-io/lychee-maven-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxzero-io%2Flychee-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxzero-io%2Flychee-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxzero-io%2Flychee-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxzero-io%2Flychee-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluxzero-io","download_url":"https://codeload.github.com/fluxzero-io/lychee-maven-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluxzero-io%2Flychee-maven-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31355359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T08:03:20.796Z","status":"ssl_error","status_checked_at":"2026-04-03T08:00:37.834Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["link-checker","lychee","maven-plugin"],"created_at":"2026-04-03T13:56:25.613Z","updated_at":"2026-04-03T13:56:26.150Z","avatar_url":"https://github.com/fluxzero-io.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lychee-maven-plugin\n\nMaven plugin that downloads a `lychee` binary for the current OS/architecture and runs it against files selected by Maven-style include/exclude patterns.\n\n## Goal\n\n- `lychee:check`\n  - Default phase: `verify`\n\n## Defaults\n\n- `lychee.version`: `0.23.0` (latest known at plugin creation time, from `lychee-v0.23.0`, published on 2026-02-13)\n- `scanDirectories`: one default entry for `${project.basedir}`\n- default includes: markdown/asciidoc/rst/html files\n- default excludes: `.git`, `target`, `node_modules`\n- `lychee.failOnError`: `true`\n- Official GitHub release downloads are SHA-256 verified against GitHub release metadata before execution.\n\n## Usage\n\n```xml\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    \u003cplugin\u003e\n      \u003cgroupId\u003eio.fluxzero\u003c/groupId\u003e\n      \u003cartifactId\u003elychee-maven-plugin\u003c/artifactId\u003e\n      \u003cversion\u003e0.1.0-SNAPSHOT\u003c/version\u003e\n      \u003cexecutions\u003e\n        \u003cexecution\u003e\n          \u003cgoals\u003e\n            \u003cgoal\u003echeck\u003c/goal\u003e\n          \u003c/goals\u003e\n        \u003c/execution\u003e\n      \u003c/executions\u003e\n      \u003cconfiguration\u003e\n        \u003cversion\u003e0.23.0\u003c/version\u003e\n\n        \u003cscanDirectories\u003e\n          \u003cscanDirectory\u003e\n            \u003cdirectory\u003edocs\u003c/directory\u003e\n            \u003cincludes\u003e\n              \u003cinclude\u003e**/*.md\u003c/include\u003e\n              \u003cinclude\u003e**/*.adoc\u003c/include\u003e\n            \u003c/includes\u003e\n            \u003cexcludes\u003e\n              \u003cexclude\u003e**/generated/**\u003c/exclude\u003e\n            \u003c/excludes\u003e\n          \u003c/scanDirectory\u003e\n          \u003cscanDirectory\u003e\n            \u003cdirectory\u003esrc/site\u003c/directory\u003e\n            \u003cincludes\u003e\n              \u003cinclude\u003e**/*.md\u003c/include\u003e\n            \u003c/includes\u003e\n          \u003c/scanDirectory\u003e\n        \u003c/scanDirectories\u003e\n\n        \u003cargs\u003e\n          \u003carg\u003e--no-progress\u003c/arg\u003e\n          \u003carg\u003e--accept\u003c/arg\u003e\n          \u003carg\u003e200..=299\u003c/arg\u003e\n        \u003c/args\u003e\n      \u003c/configuration\u003e\n    \u003c/plugin\u003e\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n\n## Configuration Reference\n\n- `skip` (`lychee.skip`, boolean, default `false`)\n- `version` (`lychee.version`, string, default `0.23.0`)\n- `linuxVariant` (`lychee.linuxVariant`, `gnu|musl`, default `gnu`)\n- `assetName` (`lychee.assetName`, string, optional override for exact release asset name)\n- `downloadBaseUrl` (`lychee.downloadBaseUrl`, default `https://github.com/lycheeverse/lychee/releases/download`)\n- `downloadServerId` (`lychee.downloadServerId`, optional Maven `settings.xml` server id for HTTP auth)\n- `verifyChecksum` (`lychee.verifyChecksum`, boolean, default `true`)\n- `expectedSha256` (`lychee.expectedSha256`, optional SHA-256 digest override, supports `sha256:` prefix)\n- `failOnError` (`lychee.failOnError`, boolean, default `true`)\n- `downloadRetries` (int, default `3`, applies to binary + release-metadata HTTP requests)\n- `retryBackoffMillis` (long, default `1000`)\n- `installDirectory` (Path, default `${project.build.directory}/lychee`)\n- `scanDirectories` (List of Maven FileSet-like scan directory blocks)\n  - `directory` (Path, default `${project.basedir}` for each block)\n  - `includes` (List\u003cString\u003e, Maven-style glob patterns, defaults to built-in doc globs)\n  - `excludes` (List\u003cString\u003e, Maven-style glob patterns, defaults to built-in exclude globs)\n- `args` (List\u003cString\u003e, extra lychee CLI args)\n\n## Maven Site / Plugin Docs\n\nRun:\n\n```bash\n./mvnw site\n```\n\nThis generates standard Maven Plugin documentation from descriptors in `target/site` (goals and parameters).\n\n## CI and Release\n\n- CI workflow: `.github/workflows/ci.yml` (`verify` + `site`)\n- Site publish workflow: `.github/workflows/pages.yml` (publishes Maven site to GitHub Pages)\n- Automated versioning/releases: `.github/workflows/release-please.yml` (creates release PRs, tags and GitHub releases)\n- Bot PR automerge: `.github/workflows/bot-auto-merge.yml` (enables automerge for `dependabot[bot]` and `release-please[bot]`)\n- Publish workflow: `.github/workflows/release.yml` (publishes to Maven Central on `v*` tags)\n- Dependabot updates: `.github/dependabot.yml` (Maven + GitHub Actions)\n- Maven Central release expects repository secrets:\n  - `CENTRAL_USERNAME`\n  - `CENTRAL_TOKEN`\n  - `GPG_PRIVATE_KEY`\n  - `GPG_PASSPHRASE`\n- SBOMs are generated during `verify` at `target/bom.xml` and `target/bom.json` and uploaded by CI/release workflows.\n\n## Testing\n\n- Unit tests: `src/test/java` (platform asset resolution).\n- End-to-end integration tests: `src/it` using Maven Invoker Plugin.\n- Run all tests:\n\n```bash\n./mvnw verify\n```\n\nThe invoker suite covers all plugin configuration parameters with real Maven builds (successful and expected-failure scenarios).\n\n## Notes\n\n- Current upstream assets only provide:\n  - macOS: arm64 tarball\n  - Windows: x86_64 exe\n  - Linux: multiple gnu/musl variants\n- If your platform needs a custom asset naming, set `assetName` explicitly.\n- SHA-256 verification is enforced for the official GitHub release download URL.\n- Release metadata used for checksum resolution is cached at `${installDirectory}/lychee-v\u003cversion\u003e/release-metadata.json`.\n- If you override `downloadBaseUrl` to a custom mirror/location, checksum verification is skipped with a warning.\n- If you use a custom mirror and still want integrity checks, set `expectedSha256`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluxzero-io%2Flychee-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluxzero-io%2Flychee-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluxzero-io%2Flychee-maven-plugin/lists"}