{"record":{"id":"0e48ae2f81c0809b","repo":"quarkusio/quarkus","slug":"failed-to-resolve-reference-artifact-groupid","errorCode":null,"errorMessage":"Failed to resolve reference artifact ${groupId}:${artifactId}:${version}","messagePattern":"Failed to resolve reference artifact (.+?):(.+?):(.+?)","errorType":"validation","errorClass":"EnforcerRuleException","httpStatus":null,"severity":"error","filePath":"independent-projects/enforcer-rules/src/main/java/io/quarkus/enforcer/DependencyAlignmentRule.java","lineNumber":251,"sourceCode":"            var deps = descriptorResult.getDependencies();\n            if (deps != null) {\n                var dependenciesAdded = (int) deps.stream()\n                        .map(org.eclipse.aether.graph.Dependency::getArtifact)\n                        .filter(a -> a.getVersion() != null && !a.getVersion().isEmpty())\n                        .filter(a -> !versions.containsKey(a.getGroupId() + \":\" + a.getArtifactId()))\n                        .peek(a -> versions.put(a.getGroupId() + \":\" + a.getArtifactId(), a.getVersion()))\n                        .count();\n                if (dependenciesAdded > 0) {\n                    getLog().debug(\"Extracted %d additional dependencies from dependencies section\"\n                            .formatted(dependenciesAdded));\n                }\n            }\n\n            getLog().debug(\"Total: %d dependencies extracted from reference artifact\".formatted(versions.size()));\n            return versions;\n\n        } catch (ArtifactDescriptorException e) {\n            throw new EnforcerRuleException(\n                    \"Failed to resolve reference artifact \" + groupId + \":\" + artifactId + \":\" + version, e);\n        }\n    }\n\n    @Override\n    public String toString() {\n        return \"DependencyAlignmentRule{\" +\n                \"referenceArtifact='\" + referenceArtifact + '\\'' +\n                \", dependencies=\" + dependencies +\n                '}';\n    }\n}\n","sourceCodeStart":233,"sourceCodeEnd":264,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/enforcer-rules/src/main/java/io/quarkus/enforcer/DependencyAlignmentRule.java#L233-L264","documentation":"DependencyAlignmentRule resolves the configured reference artifact through Maven's ArtifactDescriptorReader to extract its managed dependency versions. If resolution fails (artifact not in any configured repository, corrupted local cache, wrong coordinates), ArtifactDescriptorException is caught and rethrown as EnforcerRuleException 'Failed to resolve reference artifact g:a:v'.","triggerScenarios":"referenceDependencyVersions -> resolveReferenceArtifact called with coordinates that Maven cannot resolve: artifactId/version typo, artifact not published to any configured repository, or network/repository failure during descriptor read.","commonSituations":"Pointing referenceArtifact at a locally-built version that was never mvn install-ed; a repository is down or credentials missing; using a version that was deleted from Maven Central; offline builds.","solutions":["Verify the GAV exists: search the repository or run mvn dependency:get -Dartifact=g:a:v","Run mvn install for the reference artifact if it is a locally developed platform/BOM","Check repository configuration (settings.xml mirrors/credentials) and network access; retry after fixing","Clear a corrupted local cache entry: delete ~/.m2/repository/<group path>/<artifact>/<version> and rebuild"],"exampleFix":"// before: version not published anywhere\n<referenceArtifact>org.hibernate.orm:hibernate-platform:9.9.9.Local</referenceArtifact>\n// after: published version, or install locally first\n<referenceArtifact>org.hibernate.orm:hibernate-platform:7.3.0.Final</referenceArtifact>","handlingStrategy":"try-catch","validationCode":"// Shell: verify resolvability before enabling the rule\nmvn dependency:get -Dartifact=org.hibernate.orm:hibernate-platform:7.3.0.Final -Dtransitive=false","typeGuard":null,"tryCatchPattern":"try {\n    rule.execute();\n} catch (EnforcerRuleException e) {\n    if (e.getMessage().startsWith(\"Failed to resolve reference artifact\")) {\n        getLog().warn(\"Reference artifact unreachable; check repositories/network/offline mode\", e);\n    } else throw e;\n}","preventionTips":["Reference only published versions, or run mvn install for locally built platforms","Configure required repositories/mirrors in settings.xml, including credentials","Avoid -o (offline) mode for builds that resolve the reference artifact","Pin the platform version rather than a moving -SNAPSHOT"],"tags":["maven","enforcer","artifact-resolution","repository"],"backgroundTag":"artifact-resolution-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}