Error Diagnostics

When a build fails, jbundle displays structured diagnostics with source context.

Diagnostic Format

jbundle parses build errors and presents them in a familiar format, similar to rustc:

error: Unable to resolve symbol: prntln
 --> src/example/core.clj:9:5
   |
 7 | (defn process-data [data]
 8 |   (let [result (map inc data)]
 9 |     (prntln "Processing:" result)
   |     ^^^^^^^ symbol not found
10 |     (reduce + result)))

What You Get

  • Error type — What went wrong

  • Location — File, line, and column

  • Source context — Surrounding code with the error highlighted

  • Explanation — When available, what the error means

Supported Build Systems

Diagnostics work with all supported build systems:

  • Clojure — Compiler errors, syntax errors, unresolved symbols

  • Java/Maven — Compilation errors, missing dependencies

  • Gradle — Build failures, task errors

Fallback Behavior

If jbundle cannot parse the error format:

  • Full raw output is displayed

  • No information is lost

  • You see exactly what the underlying tool reported

Examples

Clojure Syntax Error

Java Compilation Error

Missing Dependency

Debugging Tips

Enable Verbose Logging

Shows detailed information about each build step.

Check Build Tool Output

jbundle runs standard build commands. You can run them manually to debug:

Common Issues

Error
Likely Cause

"No build system detected"

Missing deps.edn/project.clj/pom.xml/build.gradle

"JAR not found"

Build succeeded but no uberjar was created

"Main class not found"

MANIFEST.MF missing Main-Class entry

"Module not found"

jdeps detected a module that jlink can't resolve

Last updated

Was this helpful?