{"record":{"id":"ac22464e457f588e","repo":"apache/maven","slug":"plugin-not-found-in-any-plugin-repository","errorCode":null,"errorMessage":"Plugin {}:{} not found in any plugin repository","messagePattern":"Plugin (.+?):(.+?) not found in any plugin repository","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java","lineNumber":257,"sourceCode":"                version = selectCompatible(request, preReleases, \"PRE-RELEASE\");\n            }\n            if (version == null) {\n                version = selectCompatible(request, snapshots, \"SNAPSHOT\");\n            }\n            if (version != null) {\n                repo = versions.versions.get(version);\n            }\n        }\n\n        if (version != null) {\n            // if LATEST worked out of the box, remain silent as today, otherwise inform user about search result\n            if (searchPerformed) {\n                logger.info(\"Selected plugin {}:{}:{}\", request.getGroupId(), request.getArtifactId(), version);\n            }\n            result.setVersion(version);\n            result.setRepository(repo);\n        } else {\n            logger.warn(\n                    resolvedPluginVersions\n                            ? \"Could not find compatible version of plugin {}:{} in any plugin repository\"\n                            : \"Plugin {}:{} not found in any plugin repository\",\n                    request.getGroupId(),\n                    request.getArtifactId());\n            throw new PluginVersionResolutionException(\n                    request.getGroupId(),\n                    request.getArtifactId(),\n                    request.getRepositorySession().getLocalRepository(),\n                    request.getRepositories(),\n                    resolvedPluginVersions\n                            ? \"Could not find compatible plugin version in any plugin repository\"\n                            : \"Plugin not found in any plugin repository\");\n        }\n    }\n\n    /**\n     * Returns the newest version of {@code candidates} that passes {@link #isCompatible}, or {@code null}.","sourceCodeStart":239,"sourceCodeEnd":275,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java#L239-L275","documentation":"Variant of the plugin version resolution failure where the repository metadata contained NO versions at all (resolvedPluginVersions == false): Maven could not find the plugin coordinates in any configured plugin repository. The same warn call selects this shorter message and the subsequent PluginVersionResolutionException carries 'Plugin not found in any plugin repository', failing the build. This is the unversioned-plugin equivalent of a 404 artifact.","triggerScenarios":"mvn <groupId>:<artifactId>:<goal> or an unversioned <plugin> declaration where the group/artifact does not exist in any of: the POM's pluginManagement, the repositories of the current build, or the <pluginGroups> listed in settings.xml - typically a typo'd groupId or artifactId, a plugin never deployed, or repositories not reachable (offline, proxy).","commonSituations":"Typos like maven-compiller-plugin; internal plugins not yet deployed to the reachable repository; groupId omitted so Maven only searches default plugin groups; air-gapped builds where remote metadata was never cached.","solutions":["Check the groupId:artifactId spelling first - this variant almost always means the coordinates do not exist in any configured repository","For a non-standard group, use full coordinates groupId:artifactId:version:goal, or add the group under <pluginGroups> in settings.xml","Confirm the plugin is actually deployed: browse maven-metadata.xml under the group/artifact path in your repository manager; redeploy if missing","If offline or behind a proxy, fix connectivity (or pre-seed the local repo) and retry with -U to refresh metadata"],"exampleFix":"# before: group not in pluginGroups, artifact unversioned -> not found\nmvn internal:mygoal\n# after: full coordinates with version resolve directly\nmvn com.mycompany.maven.plugins:my-plugin:1.2.0:mygoal","handlingStrategy":"try-catch","validationCode":"# preflight: check the coordinates exist in every repo you rely on\nfor base in $REPOS; do\n  curl -fsSL \"$base/com/example/plugins/my-plugin/maven-metadata.xml\" >/dev/null \\\n    && echo \"found in $base\" || echo \"MISSING in $base\"\ndone","typeGuard":null,"tryCatchPattern":"// embedding Maven: distinguish not-found from no-compatible-version by message\ntry {\n    pluginVersionResolver.resolve(request);\n} catch (PluginVersionResolutionException e) {\n    if (e.getMessage().contains(\"not found\")) {\n        // coordinates typo or repository gap: fail fast with the GA in the error\n        throw new IllegalStateException(\"Unknown plugin \" + request.getGroupId() + \":\" + request.getArtifactId(), e);\n    }\n    throw e;\n}","preventionTips":["Double-check groupId spelling for non-Apache plugins; prefix search only covers configured pluginGroups","For internal plugins, deploy them and their metadata to a repository all CI agents can reach","Prefer full coordinates with version for anything invoked from scripts"],"tags":["maven","plugin-version-resolution","plugin-not-found","metadata"],"backgroundTag":"plugin-version-resolution-failed","analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-22T04:17:13.399Z"}