{"record":{"id":"3d974b29aef9b881","repo":"quarkusio/quarkus","slug":"maven-version-can-t-be-empty","errorCode":null,"errorMessage":"Maven version can't be empty.","messagePattern":"Maven version can't be empty\\.","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/components/MavenVersionEnforcer.java","lineNumber":66,"sourceCode":"                throw new IOException(\"Failed to load \" + resource + \" from the classpath\", e);\n            }\n            return props;\n        }\n    }\n\n    /**\n     * Compares the specified Maven version to see if it is allowed by the defined version range.\n     *\n     * @param log the log\n     * @param requiredMavenVersionRange range of allowed versions for Maven.\n     * @param actualMavenVersion the version to be checked.\n     * @throws MojoExecutionException the given version fails the enforcement rule\n     */\n    private void enforce(Log log,\n            String requiredMavenVersionRange, ArtifactVersion actualMavenVersion)\n            throws MojoExecutionException {\n        if (StringUtils.isBlank(requiredMavenVersionRange)) {\n            throw new MojoExecutionException(\"Maven version can't be empty.\");\n        }\n        if (!actualMavenVersion.toString().equals(requiredMavenVersionRange)) {\n            try {\n                final VersionRange vr = VersionRange.createFromVersionSpec(requiredMavenVersionRange);\n                if (!containsVersion(vr, actualMavenVersion)) {\n                    throw new MojoExecutionException(getDetectedVersionStr(actualMavenVersion.toString())\n                            + \" is not supported, it must be in \" + vr + \".\");\n                }\n            } catch (InvalidVersionSpecificationException e) {\n                throw new MojoExecutionException(\"The requested Maven version \"\n                        + requiredMavenVersionRange + \" is invalid.\", e);\n            }\n        }\n        if (log.isDebugEnabled()) {\n            log.debug(\n                    getDetectedVersionStr(actualMavenVersion.toString()) + \" is allowed in \" + requiredMavenVersionRange + \".\");\n        }\n    }","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/components/MavenVersionEnforcer.java#L48-L84","documentation":"The enforce method throws this MojoExecutionException when the required Maven version range read from quarkus.properties is blank (null/empty/whitespace). The enforcer cannot evaluate a compatibility rule with no range, so it aborts the build immediately. Normally this indicates the quarkus.properties resource is malformed rather than a user configuration problem.","triggerScenarios":"ensureMavenVersion → enforce is called with requiredMavenVersionRange blank — i.e. the 'maven.version.range' (required-range) property in quarkus.properties is missing, empty, or whitespace-only.","commonSituations":"A hand-edited or corrupted quarkus.properties inside the plugin jar; a custom/patched Quarkus build that dropped the property; parsing produced an empty value for the version-range key.","solutions":["Restore the original quarkus.properties (re-download quarkus-maven-plugin: rm -rf ~/.m2/repository/io/quarkus/quarkus-maven-plugin && ./mvnw -U)","Inspect the jar's quarkus.properties and ensure the required Maven version range key has a value like [3.6.2,)","If using a locally built Quarkus, rebuild the devtools/maven module so the resource is regenerated","File/fix the issue upstream if a Quarkus release shipped a blank range value"],"exampleFix":"// before (quarkus.properties inside plugin jar)\nmaven.version.range=\n// after\nmaven.version.range=[3.6.2,)","handlingStrategy":"validation","validationCode":"Properties p = new Properties();\ntry (var is = Thread.currentThread().getContextClassLoader()\n        .getResourceAsStream(\"quarkus.properties\")) {\n    p.load(is);\n}\nString range = p.getProperty(\"maven.version.range\");\nif (range == null || range.isBlank())\n    throw new IllegalStateException(\"blank maven.version.range; restore original quarkus.properties\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Never edit resources inside published jars","Rebuild devtools/maven locally when patching Quarkus","Validate custom builds by inspecting quarkus.properties","Report upstream if a release ships a blank range"],"tags":["maven","quarkus","validation","configuration"],"backgroundTag":"maven-version-range-empty","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"}