quarkusio/quarkus · error · MojoExecutionException
Failed to resolve application model <appArtifact> dependenci
Error message
Failed to resolve application model <appArtifact> dependencies
What it means
DependencySbomMojo.resolveApplicationModel resolves the app model via BootstrapAppModelResolver before generating the SBOM. Any Exception from resolution (or surrounding logic) is wrapped in a MojoExecutionException 'Failed to resolve application model <appArtifact> dependencies' with the root cause chained.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/DependencySbomMojo.java:153
try {
modelResolver = new BootstrapAppModelResolver(getResolver())
.setRuntimeModelOnly(runtimeOnly);
if (mode != null) {
if (mode.equalsIgnoreCase("test")) {
modelResolver.setTest(true);
} else if (mode.equalsIgnoreCase("dev") || mode.equalsIgnoreCase("development")) {
modelResolver.setDevMode(true);
} else if (mode.equalsIgnoreCase("prod") || mode.isEmpty()) {
// ignore, that's the default
} else {
throw new MojoExecutionException(
"Parameter 'mode' was set to '" + mode + "' while expected one of 'dev', 'test' or 'prod'");
}
}
modelResolver.setLegacyModelResolver(BootstrapAppModelResolver.isLegacyModelResolver(project.getProperties()));
return modelResolver.resolveModel(appArtifact);
} catch (Exception e) {
throw new MojoExecutionException("Failed to resolve application model " + appArtifact + " dependencies", e);
}
}
private String getSbomFilename() {
var a = project.getArtifact();
var sb = new StringBuilder().append(a.getArtifactId()).append("-").append(a.getVersion()).append("-");
if (!"prod".equalsIgnoreCase(mode)) {
sb.append(mode).append("-");
}
return sb.append("dependency-cyclonedx").append(".").append(format).toString();
}
private File getSbomFile() {
var f = outputFile;
if (f == null) {
f = new File(project.getBuild().getDirectory(), getSbomFilename());
}
if (getLog().isDebugEnabled()) {View on GitHub (pinned to e1c734241f)
Solutions
- Re-run with -e/-X to inspect the chained cause
- Ensure dependencies resolve first with mvn validate or mvn dependency:go-offline
- Fix settings.xml repository credentials/mirrors for private artifacts
- Clean corrupt ~/.m2/repository entries for the failing artifacts
Defensive patterns
Strategy: retry
Validate before calling
// Pre-verify dependency resolution before generating the SBOM mvn -q validate dependency:go-offline # a failing exit indicates artifacts that will break resolveModel
Try / catch
try {
mvn quarkus:dependency-sbom;
} catch (MojoExecutionException e) {
if (e.getMessage().startsWith("Failed to resolve application model")) {
// read e.getCause() for the exact unresolvable artifact or repo problem,
// fix settings/dependencies, then retry
}
} Prevention
- Populate the local repo (dependency:go-offline) before offline SBOM generation
- Ensure credentials for private repositories in settings.xml
- Avoid version ranges and snapshots in release SBOM pipelines
- Clean corrupt ~/.m2 entries for artifacts reported in the cause
When it happens
Trigger: Running quarkus:dependency-sbom when modelResolver.resolveModel(appArtifact) throws — unresolvable artifacts, repository/network issues, broken workspace metadata, or invalid project dependencies.
Common situations: Offline CI without a populated ~/.m2 cache; missing private repository credentials; corrupt local repo entries; version-range dependencies that cannot be resolved; multi-module workspace misconfiguration.
Related errors
- Failed to resolve application model <appArtifact> dependenci
- mainComponent is null
- Failed to resolve dependencies for
- Could not resolve POM for
- Failed to build enhanced artifact
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/e35e17a2dbc44d4c.
Report an issue: GitHub.