lfr
is an unofficial CLI tool written in Go that helps you create & manage Liferay projects.
I needed a subject to play with Go. Writing a CLI tool is fun - especially with Cobra - and I wanted to explore how to distribute it using GitHub Actions (and GoReleaser).
Also, I get sometimes frustrated by Blade and wanted to focus on providing:
- Better performances (cf. benchmarks)
- Better support for Maven
- Shorter commands
- More consistent commands names and ordering
- Details after any command execution
- Shell completion
I'm not the only one motivated to help Liferay developpers with new dev tools. If you're looking for something to help you with Client Extensions development, definitely checkout this tool: https://github.com/bnheise/ce-cli
For macOS or Linux, you can install it using Homebrew:
brew tap lgdd/homebrew-tap
brew install lfr-cli
if you already installed it using
brew install liferay-cli
, make sure to runbrew update
to be able to update to the latest version matching the new name.
For Windows, go to the release page and download the zip file corresponding to your architecture. Then extract lfr.exe
from the archive and move to the folder of your choice. Make sure that the chosen folder is included in the %PATH%
environment variable.
Checkout the documentation (work in progress).
Using Hyperfine with 5 warmup runs and the following setup:
blade version 6.0.0.202404102137
lfr version v3.0.0
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
lfr c ws liferayws |
179.5 ± 17.2 | 165.9 | 237.1 | 1.00 |
blade init -v 7.4 liferayws |
719.6 ± 7.2 | 709.5 | 728.9 | 4.01 ± 0.39 |
Summary:
lfr c ws liferayws
ran 4.01 ± 0.39 times faster thanblade init -v 7.4 liferayws
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
lfr c mvc my-mvc-portlet |
23.0 ± 4.4 | 20.5 | 47.0 | 1.00 |
blade create -t mvc-portlet my-mvc-portlet |
710.3 ± 6.1 | 703.6 | 720.5 | 30.82 ± 5.94 |
Summary:
lfr c mvc my-mvc-portlet
ran 30.82 ± 5.94 times faster thanblade create -t mvc-portlet my-mvc-portlet
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
lfr create sb my-service-builder |
19.8 ± 2.8 | 17.6 | 31.2 | 1.00 |
blade create -t service-builder my-service-builder |
723.8 ± 11.0 | 708.9 | 738.8 | 36.65 ± 5.17 |
Summary:
lfr create sb my-service-builder
ran 36.65 ± 5.17 times faster thanblade create -t service-builder my-service-builder