Damascus is a Liferay Blade tool extension for generating scaffolding of Service builder portlet with CRUD functionality based on a configuration json file, base.json. For more detailed usage, please see this official document
The list of what Damascus automatically generate is as follows
Mac
curl https://raw.githubusercontent.com/yasuflatland-lf/damascus/master/installers/global | sudo sh
Windows
jpm install https://github.com/yasuflatland-lf/damascus/raw/master/latest/damascus-all.jar
${user}/.damascus
folder. If you've modified files, please change them accordingly after regenerating configurations and templates.Let's make a Todo app with damascus
modules
folder and run damascus init -c Todo -p com.liferay.sb.test -v 7.3
todo
folder. You'll see base.json
file is created. For detailed configuration, please see the official documentation. Just for demonstration now, we'll create a scaffolding as it is.damascus create
and damascus will create a scaffolding service and portlet according to the base.json file.Todo
folder, type blade deploy
. Blade will run properly and service and portlet will be deployed../gradlew shadowJar
then damascus-all.jar
will be created under /build/libs/
directory.jpm remove damascus
. Then install your jar with jpm install ./damascus-all.jar
.Please see more detailed settings here
Damascus is including lombok library, so annotation library for lombok needs to be properly installed on IDEs. Here are how to apply lombok to Eclipse / IntelliJ
lombok.jar
and select the directory where eclipse.exe
exist./gradlew eclipse
at the project directory and restart IDE, and right click on the project and display context name, and choose gradle > Refresh gradle project
Preferences - Plugins
and search Lombok. Install the Lombok plugin.Preferences - Build, Execution, Deployment - Compiler - Annotation Processors
and check Enable annotation processing
In terms of bugs, please post Github issues or send me a PR. To send me PR, please follow the process below.
${user}/.damascus
folder../gradlew clean test --info
and confirm your fix pass all tests.A contribution is always welcome! In terms of an Enhancement request, please follow the process below. If you wonder it's a complex feature, please create an issue first and let's discuss. In terms of simple enhancement, please follow steps below.
./gradlew clean test --info
until your code pass all testsDamascus is named after "Damascus blade", which is a strong/sharp blade made out from Damascus steel and forged with lost technology. Liferay has it's an official development tool, "Blade", so I gave this name in the hope of reinforcement or extension of Blade tool.