Quarkus Banner
Generate a FIGlet ASCII-art startup banner for your Quarkus application — rendered at build time from a piece of text and a font, and shown at start-up the same way Quarkus renders its own banner.
__ __ ____ _
| \/ |_ _ / ___| ___ _ ____ _(_) ___ ___
| |\/| | | | | \___ \ / _ \ '__\ \ / / |/ __/ _ \
| | | | |_| | ___) | __/ | \ V /| | (_| __/
|_| |_|\__, | |____/ \___|_| \_/ |_|\___\___|
|___/
Powered by Quarkus 3.x.x
How it works
At build time the extension renders your text into ASCII art with one of the ~250 bundled FIGlet fonts and
installs it as a TextBannerFormatter on the console log handler — the exact mechanism Quarkus uses for its
own banner. This means:
-
the banner appears as a header above the log output and honours your console format and colour settings;
-
Quarkus' built-in banner is replaced automatically (you do not need to set
quarkus.banner.enabled=false); -
if generation is disabled, or the text cannot be rendered, the default Quarkus banner is left untouched.
Unlike Quarkus' own banner, the generated banner is also shown when running tests.
|
Because the banner is baked at build time, changing the text or font requires a rebuild (or a live-reload in dev mode). In dev mode a live-reload only runs on the next HTTP request to the application, so for a quick edit-and-see loop use the Dev UI card instead — it renders on demand with no restart. |
Installation
To use this extension, add the io.quarkiverse.banner:quarkus-banner dependency to your build file.
With Maven, add the following to your pom.xml:
<dependency>
<groupId>io.quarkiverse.banner</groupId>
<artifactId>quarkus-banner</artifactId>
<version>1.1.0</version>
</dependency>
With Gradle, add the following to your build.gradle:
implementation("io.quarkiverse.banner:quarkus-banner:1.1.0")
Usage
Configure the banner in your application.properties:
# The text to render (defaults to quarkus.application.name, or "Quarkus")
quarkus.banner-generator.text=My Service
# One of the bundled fonts (defaults to "standard")
quarkus.banner-generator.font=doom
The available configuration properties are listed in the Configuration Reference. All of them are fixed at build time.
Fonts
quarkus.banner-generator.font must be one of the 246 FIGlet fonts bundled with, and tested against, this
extension — for example standard, slant, doom, big, colossal, banner3-D or 3d_diagonal. The
value is matched to a font by name, case-insensitively.
Only bundled fonts are accepted; arbitrary classpath resources, file paths and remote URLs are intentionally not supported, and an unknown font name is reported as an error at build time, so typos are caught immediately.
The full list of bundled fonts and their authors is in the
FIGLET-FONTS.md file at the root of
the repository.
|
The bundled fonts originate from the FIGlet font collection and are authored by many individuals under varied
terms. Each font’s original header (including author credit) is preserved in the |
Dev mode
Quarkus' interactive dev console (quarkus:dev) repaints its pinned prompt and can erase the start-up banner
on narrow terminals. This affects Quarkus' own banner too, not just this extension.
If you want the banner to survive in dev mode regardless of terminal width, use the basic console for the dev profile only:
%dev.quarkus.console.basic=true
This has no effect in production — the interactive console only runs in dev and test modes.
Dev UI
Because the banner is rendered at build time, changing quarkus.banner-generator.text or …font in
application.properties only takes effect on the next live-reload — and in dev mode a live-reload is only
triggered by the next HTTP request to the application. For a service that receives no requests while you work
on it, nothing appears to happen when you save the file.
To make trying fonts and text quick and immediate, the extension contributes a Quarkus Banner card to the
Dev UI, available in dev mode at http://localhost:8080/q/dev-ui/.
Open the card’s Preview page to test and check your banner:
-
Text — type any text to render. It defaults to the configured
quarkus.banner-generator.text(or the application name). -
Font — pick any of the bundled fonts from the selector. It defaults to the configured font.
-
Powered by Quarkus — toggle the tagline that is appended under the banner.
The preview updates live as you change any of these — no restart and no HTTP request required — so you can compare fonts and wording instantly. The rendering uses the exact same code path as the start-up banner, so what you see is what you get at boot.
Press Print to log to render the current text and font straight to the application console, exactly as the start-up banner would appear:
_____ ______ __ ___ _ _____ _______ ______ _____ _______
| __ \| ____\ \ / / | | |_ _| |__ __| ____|/ ____|__ __|
| | | | |__ \ \ / /| | | | | | | | | |__ | (___ | |
| | | | __| \ \/ / | | | | | | | | | __| \___ \ | |
| |__| | |____ \ / | |__| |_| |_ | | | |____ ____) | | |
|_____/|______| \/ \____/|_____| |_| |______|_____/ |_|
Powered by Quarkus 3.x.x
Once you settle on a text and font, set them in application.properties so they are baked into the build.
Every setting on the card is a preview only: it never changes your configuration or the installed banner.