Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Category
Category
Gogo Shell Commands
Gogo Shell Commands The Gogo shell executes Felix Gogo basic commands and Liferay commands. The Gogo shell is accessible in the Control Panel (recommended) and from the command line. Here are some...
Using Asynchronous Messaging
Using Asynchronous Messaging Message Bus's asynchronous option provides fire and forget behavior; send a message and continue processing without waiting for a response. An asynchronous message is...
Exporting Packages
Exporting Packages In OSGi, packages are private by default. You must explicitly exporting a package so other modules can import and use them. Here's how to export packages: Open your bnd.bnd...
Data Set Visualization Modes
Data Set Visualization Modes Liferay DXP 2024.Q2+/Portal GA120+ Currently, this feature is behind a release feature flag (LPS-164563). To customize the data display in your data set, use the...
Designing Object Views
Designing Object Views Liferay 7.4+ Views define how entries appear in an object's application page. Though each published object has an autogenerated view, you can create your own. Design custom...
Data Set Filters
Data Set Filters Liferay DXP 2024.Q1/Portal GA112 Currently, this feature is behind a release feature flag (LPS-164563). While managing data sets, you can define pre-applied filters to be used...
Upgrading to Jakarta
Upgrading to Jakarta Liferay DXP 2025.Q3+/Portal 2026.Q1+ Liferay stepped into the future of enterprise Java when it moved to Jakarta EE starting with the DXP 2025 Q3 and the 2026 Q1 Portal...
Creating a Basic Custom Element
Creating a Basic Custom Element Liferay 7.4+ Custom element client extensions use Liferay's frontend infrastructure to register external, remote applications with the Liferay platform and render...
Using an IFrame Client Extension
Using an IFrame Client Extension Liferay 7.4+ IFrame client extensions use Liferay's frontend infrastructure to register external applications as HTML elements. They're added to Liferay pages as...
Using a Microservice Client Extension
Using a Microservice Client Extension A microservice client extension is a standalone server process that relies on OAuth 2 for communication with Liferay. The microservice is a resource server and...
Using a Site Initializer Client Extension
Using a Site Initializer Client Extension Liferay DXP 2023.Q4+/Portal GA100+ Site Initializer client extensions can quickly create or update a site, complete with configurations and content. Start...
Object Validation Rule YAML Configuration Reference
Object Validation Rule YAML Configuration Reference To define an Object Validation Rule client extension, add the objectValidationRule type to your client-extension.yaml file. Usage Details This...
Integrating External Applications
Integrating External Applications Custom Element and IFrame client extensions register applications with Liferay and render them as widgets on site pages. When you create one of these frontend...
Site Initializer YAML Configuration Reference
Site Initializer YAML Configuration Reference Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Use a client-extension.yaml file to define a Site Initializer client extension. Usage...
Object Action YAML Configuration Reference
Object Action YAML Configuration Reference You can define an object action client extension with a client-extension.yaml file. Usage Details This client-extension.yaml defines an object action and...
Site Initializers
Site Initializers Liferay DXP 2023.Q4+/Portal GA100+ Site Initializers package pages, content, and configurations to help you jump-start a new site with much of the site already built. You can...
Notification Type YAML Configuration Reference
Notification Type YAML Configuration Reference You can define a notification type client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a...
Workflow Action YAML Configuration Reference
Workflow Action YAML Configuration Reference You can define a workflow action client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a workflow...
Creating Deployment Environments
Creating Deployment Environments There comes a point when your code is ready to share. For that, you must build an environment. In the corporate world, there are usually three environments: ...
Tooling
Tooling Liferay provides a variety of developer tools that include standard build scripting, lightweight CLI utilities, and full IDE based on Eclipse. This is to serve all developers, whether...
Generating Projects with Blade CLI
Generating Projects with Blade CLI Blade CLI exists to create, build, and deploy Liferay projects in Liferay Workspaces. Once created, these projects can be imported into an IDE or worked on...
Creating A Liferay Workspace
Creating A Liferay Workspace You can create a Liferay Workspace manually or with Blade CLI. Creating a Liferay Workspace Manually To create a Liferay Workspace manually, you must have Gradle...
Blade CLI
Blade CLI Blade CLI can be installed through a command line interface or a graphical installer. If you're behind a proxy, once it's installed you can configure it to operate through the proxy....
Troubleshooting Blade CLI
Troubleshooting Blade CLI If Blade CLI isn't working as expected, you may find answers here. The blade command is not available in my CLI The Blade CLI installer adds the blade command to your...
Other Tools (Deprecated)
Other Tools (Deprecated) These tools are deprecated as of Liferay 2024.Q4/Portal GA129, and they are planned for future removal. Modern browsers (and Liferay DXP) all support including JavaScript...
Liferay npm Bundler (Deprecated)
Liferay npm Bundler (Deprecated) The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal.
Migrating an Angular Project to Use Liferay npm Bundler 2.x
Migrating an Angular Project to Use Liferay npm Bundler 2.x The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. Follow these steps to...
Bundler Migration Guide
Bundler Migration Guide The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal.
Migrating a liferay-npm-bundler Project from 1.x to 2.x
Migrating a liferay-npm-bundler Project from 1.x to 2.x The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. liferay-npm-bundler 2.x offers...
Migrating a Plain JavaScript, Billboard JS, JQuery, Metal JS, React, or Vue JS Project to Use Liferay npm Bundler 2.x
Migrating a Plain JavaScript, Billboard JS, JQuery, Metal JS, React, or Vue JS Project to Use Liferay npm Bundler 2.x The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and...
How the Bundler Publishes npm Packages
How the Bundler Publishes npm Packages The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. When you deploy an OSGi bundle with the...
Liferay npm Bundler
Liferay npm Bundler The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. The liferay-npm-bundler is a bundler (like Webpack or Browserify)...
Understanding the npmbundlerrc Structure
Understanding the npmbundlerrc Structure The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. The liferay-npm-bundler is configured via a...
Changes Between Bundler 1.x and 2.x
Changes Between Bundler 1.x and 2.x The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. This article outlines the key changes between...
Migrating Your Project to Use liferay-npm-bundler's New Mode
Migrating Your Project to Use liferay-npm-bundler's New Mode The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. Since issue #303, two...
Default Bundler Loaders
Default Bundler Loaders The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. Several loaders are available for the liferay-npm-bundler by...
How AMD Loader Configuration is Exported
How AMD Loader Configuration is Exported The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. If you don't understand how Liferay AMD...
How JavaScript Modules are Formatted for AMD
How JavaScript Modules are Formatted for AMD The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. Liferay AMD Loader is based on the AMD...
OSGi Bundles and npm Package Structure
OSGi Bundles and npm Package Structure The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. To deploy JavaScript modules, you must create an...
Understanding the Liferay npm Bundler Loader
Understanding the Liferay npm Bundler Loader The Liferay npm bundler is deprecated of Liferay 2024.Q4/Portal GA129, and it's planned for future removal. liferay-npm-bundler's mechanism is...