quarkusio/quarkus · error · GradleException
Classpath resource + pomPropsPath + is missing artifactId
Error message
Classpath resource + pomPropsPath + is missing artifactId
What it means
QuarkusDev.getQuarkusBootstrapResolver reads a properties resource (pomPropsPath) from the classpath to build the dev-mode dependency coordinate. This GradleException is thrown when the resource lacks the artifactId key. Like its groupId/version siblings, it signals malformed Quarkus plugin metadata on the classpath.
Source
Thrown at devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java:645
private Dependency getQuarkusBootstrapResolver(String artifactId) {
final String pomPropsPath = "META-INF/maven/io.quarkus/" + artifactId + "/pom.properties";
final InputStream devModePomPropsIs = DevModeMain.class.getClassLoader().getResourceAsStream(pomPropsPath);
if (devModePomPropsIs == null) {
throw new GradleException("Failed to locate " + pomPropsPath + " on the classpath");
}
final Properties devModeProps = new Properties();
try (InputStream is = devModePomPropsIs) {
devModeProps.load(is);
} catch (IOException e) {
throw new GradleException("Failed to load " + pomPropsPath + " from the classpath", e);
}
final String devModeGroupId = devModeProps.getProperty("groupId");
if (devModeGroupId == null) {
throw new GradleException("Classpath resource " + pomPropsPath + " is missing groupId");
}
final String devModeArtifactId = devModeProps.getProperty("artifactId");
if (devModeArtifactId == null) {
throw new GradleException("Classpath resource " + pomPropsPath + " is missing artifactId");
}
final String devModeVersion = devModeProps.getProperty("version");
if (devModeVersion == null) {
throw new GradleException("Classpath resource " + pomPropsPath + " is missing version");
}
return project.getDependencies()
.create(String.format("%s:%s:%s", devModeGroupId, devModeArtifactId, devModeVersion));
}
private Dependency getQuarkusCoreDeployment(ApplicationModel appModel) {
ResolvedDependency coreDeployment = null;
for (ResolvedDependency d : appModel.getDependencies()) {
if (d.isDeploymentCp() && d.getArtifactId().equals("quarkus-core-deployment")
&& d.getGroupId().equals("io.quarkus")) {
coreDeployment = d;
break;
}
}View on GitHub (pinned to e1c734241f)
Solutions
- Purge cached io.quarkus artifacts from ~/.gradle/caches/modules-2 and ~/.m2/repository, then re-resolve dependencies.
- Use matching versions for the Quarkus Gradle plugin and the Quarkus platform BOM.
- Check the actual jar for poms.properties (unzip -p <jar> <path>) to confirm the artifactId key exists.
- Run with --refresh-dependencies to force re-download.
Example fix
// before ./gradlew quarkusDev // after: force clean re-resolution rm -rf ~/.gradle/caches/modules-2/files-2.1/io.quarkus ./gradlew quarkusDev --refresh-dependencies
Defensive patterns
Strategy: validation
Validate before calling
// Ensure matching Quarkus plugin/BOM versions before dev mode
String pluginVersion = "3.15.0";
String buildFile = Files.readString(Path.of("build.gradle"));
if (!buildFile.contains("enforcedPlatform('io.quarkus.platform:quarkus-bom:" + pluginVersion + "')")) {
throw new IllegalStateException("Quarkus plugin and BOM versions are misaligned");
} Try / catch
try {
./gradlew quarkusDev
} catch (GradleException e) {
if (e.getMessage().contains("is missing artifactId")) {
// delete io.quarkus entries from Gradle/Maven caches and re-run with --refresh-dependencies
}
} Prevention
- Never hand-edit pom.properties inside cached jars.
- Use a single version catalog for all Quarkus coordinates.
- Run ./gradlew --stop after upgrading Quarkus to avoid stale daemons.
- Verify artifact integrity after interrupted downloads.
When it happens
Trigger: Dev-mode startup (quarkusDev task) where the loaded poms.properties resource has no 'artifactId' property; raised within getQuarkusBootstrapResolver via getQuarkusGradleBootstrapResolver or getQuarkusMavenBootstrapResolver.
Common situations: Broken Gradle/Maven artifact caches; a pom.properties overwritten or truncated by a failed download; snapshot artifacts republished with incomplete metadata; custom shading/repackaging of Quarkus plugin jars that dropped the properties file contents.
Related errors
- Classpath resource + pomPropsPath + is missing groupId
- Classpath resource + pomPropsPath + is missing version
- Failed to locate io.quarkus:quarkus-core-deployment on the a
- Failed to locate project's classes directory
- Failed to process + artifactPath
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/f654921e2f4197ba.
Report an issue: GitHub.