The goal of this project is to provide a command line tool to help set up a Spring Boot with Thymeleaf project.
./ttcli help
(macOS/Linux) or ttcli.exe help
(Windows) to see the options of the tool.The application is also available via the following package managers:
brew install wimdeblauwe/homebrew-ttcli/ttcli
choco install ttcli
Run ttcli init
to have the tool create a new Spring Boot project with an NPM based live-reload setup.
The tool will ask the following questions:
groupId
that should be used for the project.artifactId
that should be used for the project.The tool will create a new project in a sub-directory of the current directory with the name of the artifactId
and apply the following changes:
index.html
and layout.html
page as a starting point for your Thymeleaf application.application-local.properties
with Thymeleaf template caching disabled.[!NOTE] You can choose a different base directory that the tool should use via
ttcli --baseDir <otherdir>
The tool allows selecting from various options for having live reload when editing HTML, CSS and JavaScript files.
[!IMPORTANT] Be sure to always read the instructions in the generated HELP.md to know how to work with your live reload selection.
This is the simplest option, but it is also the slowest to reload upon change. The biggest advantage is that you do not need to have npm installed.
[!NOTE] If you also select 'Tailwind CSS' with this option, then you will need
npm
to make it work.
This uses npm to watch the HTML, CSS and JavaScript files and processes them. This gives a quicker live reload experience compared to using DevTools.
This option uses Vite for live reloading. It requires an additional dependency on the Spring Boot side to process the assets and manifest that Vite generates. The biggest advantages:
Support for Tailwind CSS is a bit more involved compared to other web dependency as you can't just add a webjars dependency. For that reason, the live reload options all do various customizations when you select 'Tailwind CSS' as a web dependency.
mvn verify
Use GraalVM JDK:
sdk use java 22.3.r17-grl
Run native compilation:
mvn -Pnative native:compile
An official release is done via a manual action on Github Actions.
[!NOTE] You need to configure a GitHub access token. Put it in
~/.jreleaser/config.properties
with for example:JRELEASER_GITHUB_TOKEN=<github-token-value>
Check JReleaser configuration:
mvn -Djreleaser.dry.run -Prelease jreleaser:config
Posting a release from a local environment only when binaries for the current platform are available:
mvn -Prelease jreleaser:release -Djreleaser.select.current.platform