Documentation / The IDE

Run and debug

Builds with Maven, Gradle, Ant, npm or Cargo, application servers, JDWP, CDP and PL/SQL debuggers, hot swap and JVM diagnostics.

Yuli builds, runs, tests and debugs with your project's own tools. Stopping a build, a log or a test terminates the entire process tree.

Build tools

Tool Projects
Maven Java with pom.xml
Gradle Java and Kotlin with build.gradle
Ant Java with build.xml
npm JavaScript and TypeScript (detects the package manager from the lockfile)
Cargo Rust

Yuli also understands Eclipse projects without migrating them.

Toolchains

Yuli detects the JDK, Maven and Gradle, offers to download any that are missing and shows their status. You configure them in Project → Build, run and debug…: environment variables, VM options, Spring profiles, SDK, Maven, Gradle and saving.

Maven / Gradle / Ant panel

In the bottom panel (Alt+7): a filter, profiles as chips, the lifecycle phases in a strip and the remaining tasks in cards grouped by category.

Run

Action Shortcut
Run the last configuration Shift+F10
Debug the last configuration Shift+F9
Stop the run Ctrl+F2
Build project Ctrl+F9
Run all tests Ctrl+Shift+F10
Run tests with coverage Ctrl+Shift+F11

Run configurations

Types: build, run, tests, clean, coverage, package, custom command and package.json script. They keep a history.

The console

In the Run panel, every project stack trace line, every JSP error and every Archivo.java:42 takes you to the file and line. Filter by level, by package or logger, or by My code (only what comes from the project).

Application servers

In Project → Project structure… → Servers:

Server Notes
Tomcat Reloads the context when classes are updated.
Jetty —
JBoss / WildFly —
WebLogic Domain in development mode.
  • Exploded deployment: JSP, HTML, CSS, JS and .properties reach the server on save, without redeploying. Update copies the recompiled classes.
  • Each server runs with its own configuration inside the project, with its own ports.
  • Start in run or debug mode; the debugger attaches automatically.
  • Warns you if the app uses javax on a jakarta server, or the other way around.
  • The server APIs (Servlet, JSP) are added to the editor's classpath.

Debug

Language Debugger
Java and JVM Native JDWP client
Node.js Chrome DevTools Protocol (CDP)
Oracle PL/SQL Oracle's DBMS_DEBUG

Features

  • Variable tree and object inspection, with inline values over the code.
  • Readable values: an object shows as Owner{id=3, firstName="George", …}, a date as 2026-10-15, a collection with its size.
  • Conditional, hit-count, logpoint and exception breakpoints.
  • Expression evaluator and live value changes.
  • Test debugging.

Stepping

Action Shortcut
Resume F9
Next line (step over) F8
Step into, your code only (step into) F7
Force step into Alt+Shift+F7
Step out of the method Shift+F8
Reload modified classes (hot swap) Ctrl+Alt+F10

Hot swap

Recompiles with the project's tool and redefines the changed classes during the debug session, without restarting.

PL/SQL

To debug on Oracle, the user needs the DEBUG CONNECT SESSION privilege and the objects must be compiled with COMPILE DEBUG.

JVM diagnostics

The JVM panel (under “More” in the bottom panel) attaches to any local Java process.

Tool What it does
Thread dump Groups by state and highlights locks and deadlocks.
Memory histogram Memory per class. When you repeat it, shows what grew (leaks).
Heap dump Saves an .hprof for Eclipse MAT or VisualVM.
Profile CPU and memory With Flight Recorder: the most expensive methods, call tree, allocations and GC. If the JVM doesn't support it, profiles by thread sampling.

Tabs: CPU, Memory, Allocations and Threads. The Project code only filter keeps just your code, and project frames take you to the exact line.

Tests and coverage

  • The test explorer runs tests and reports results in the Tests panel.
  • Coverage shows in the editor gutter: covered, not covered and partial.
  • With Gradle, coverage is generated without touching the build, even in multi-module projects.

With the agent

Ask “build, test and start it” and the agent uses yuli_verify: a full build, all tests and one start with the default profile. If the application fails to start because of an environment variable or a profile, the agent can look into it and ask you only for the secret values.