quarkusio/quarkus · error · IllegalStateException
Failed to initialize Quarkus bootstrap Maven resolver
Error message
Failed to initialize Quarkus bootstrap Maven resolver
What it means
JBangBuilderImpl.postBuild() initializes the bootstrap Maven resolver (remote repositories, repository system session) via the bootstrap Maven context. If BootstrapMavenException is thrown during that initialization it is rethrown as IllegalStateException("Failed to initialize Quarkus bootstrap Maven resolver").
Source
Thrown at independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/jbang/JBangBuilderImpl.java:54
boolean nativeImage) {
final MavenArtifactResolver quarkusResolver;
try {
final BootstrapMavenContext mvnCtx = new BootstrapMavenContext(BootstrapMavenContext.config()
.setCurrentProject(pomFile.getParent().toString()));
final List<RemoteRepository> remoteRepos = new ArrayList<>(mvnCtx.getRemoteRepositories());
repositories.forEach(repo -> {
remoteRepos.add(new RemoteRepository.Builder(repo.getKey(), "default", repo.getValue()).build());
});
quarkusResolver = MavenArtifactResolver.builder()
.setRepositorySystem(mvnCtx.getRepositorySystem())
.setRepositorySystemSession(mvnCtx.getRepositorySystemSession())
.setRemoteRepositoryManager(mvnCtx.getRemoteRepositoryManager())
.setRemoteRepositories(remoteRepos)
.build();
} catch (BootstrapMavenException e) {
throw new IllegalStateException("Failed to initialize Quarkus bootstrap Maven resolver", e);
}
try {
Path target = Files.createTempDirectory("quarkus-jbang");
final ResolvedArtifactDependency appArtifact = new ResolvedArtifactDependency("dev.jbang.user", "quarkus", null,
"jar", "999-SNAPSHOT", appClasses);
final QuarkusBootstrap.Builder builder = QuarkusBootstrap.builder()
.setBaseClassLoader(JBangBuilderImpl.class.getClassLoader())
.setMavenArtifactResolver(quarkusResolver)
.setProjectRoot(pomFile.getParent())
.setTargetDirectory(target)
.setManagingProject(new GACTV("io.quarkus", "quarkus-bom", "", "pom", getQuarkusVersion()))
.setForcedDependencies(dependencies.stream().map(s -> {
String[] parts = s.getKey().split(":");
// The format of maven coordinate used in what jbang calls `canonical` form.
// The form is described here: https://github.com/jbangdev/jbang/blob/main/src/main/java/dev/jbang/dependencies/MavenCoordinate.java#L118
// Despite the fact that is non standard it's still used for compatibility reasons by the IntegrationManager:
// https://github.com/jbangdev/jbang/blob/main/src/main/java/dev/jbang/spi/IntegrationManager.java#L73View on GitHub (pinned to e1c734241f)
Solutions
- Run with the cause's stack trace and fix the underlying Maven configuration problem (usually settings.xml or repository URL)
- Validate ~/.m2/settings.xml and any project settings with 'mvn help:effective-settings'
- Check network/proxy access to the configured remote repositories
- Ensure the local Maven repository (~/.m2/repository) is writable
Example fix
// before (broken settings.xml) <mirror><url>htp:/bad-url</url></mirror> // after <mirror><id>central</id><url>https://repo.maven.apache.org/maven2</url></mirror>
Defensive patterns
Strategy: try-catch
Validate before calling
Process p = new ProcessBuilder("mvn", "help:effective-settings").start();
if (p.waitFor() != 0) throw new IllegalStateException("Invalid Maven settings — fix ~/.m2/settings.xml first"); Try / catch
try {
builder.postBuild();
} catch (IllegalStateException e) {
if (e.getMessage().startsWith("Failed to initialize Quarkus bootstrap Maven resolver")) {
// inspect e.getCause() (BootstrapMavenException) for settings/repo problem
}
} Prevention
- Keep ~/.m2/settings.xml valid and mirrors reachable
- Test Maven connectivity (mvn help:evaluate) before running JBang packaging
- Ensure the local repository is writable and proxies are configured
When it happens
Trigger: postBuild() invoked when the underlying Maven repository system cannot be created or configured — typically failures reading settings.xml/pom model, bad repository definitions, or resolver wiring errors.
Common situations: Broken ~/.m2/settings.xml (invalid XML, bad mirror URLs); unreachable or misconfigured remote repositories; missing local repository directory permissions; running JBang packaging in an environment without proper Maven configuration.
Related errors
- Unrecognized option for quarkus.bootstrap.misaligned-platfor
- Unsupported format: ${format}
- Failed to run application
- Either the `extension` or `extensions` parameter must be set
- Cannot specify both class and method name
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/60820fdd91eec65b.
Report an issue: GitHub.