Liferay Maven plugin projects created with Liferay IDE (2.0 Milestone 1 and newer) have all the required Liferay facets, including the new m2e-liferay plugin. The m2e-liferay plugin provides a project life cycle map for building and deploying your Liferay project. If your Liferay Maven plugin project was created outside of Liferay IDE or created in a Liferay IDE earlier than version 2.0 Milestone 1, you must update the project with the latest required facets, including the m2e-liferay plugin. This tutorial helps you create projects with facets and shows you how to import your standalone Maven projects into Liferay IDE. You’ll also learn how to determine whether your project is missing any required facets, in case you’re unsure.
If you’re interested in learning more about the Liferay Maven project facets, then you’ll enjoy the next section. You can otherwise skip ahead to the section after it to learn how to set up your older Liferay Maven projects to use the Liferay Maven facets.
Understanding Facets for Liferay Maven Plugin Projects
Beginning with version 2.0 Milestone 1, Liferay IDE supports Liferay Maven projects that use the m2e-liferay Eclipse plugin. Specifically, Liferay IDE contains a Maven project configurator that enables Liferay Maven plugin projects to use Liferay facets. Liferay Maven projects with Liferay facets are recognized as full Liferay IDE projects.
While it’s possible to use a variety of Maven-related mojo plugins to build
Liferay plugin projects, you should use liferay-maven-plugin to build them. Each
Liferay plugin archetype available in Maven Central adds the
liferay-maven-plugin to the build plugin configuration section of the
project’s pom.xml
. Note that most of the Liferay Maven plugins are just .war
packages with the liferay-maven-plugin added to their configuration sections.
To support these projects in Liferay IDE, a mechanism is needed for the IDE to recognize them as Liferay IDE projects. Non-Maven Liferay IDE projects are recognized in Eclipse as faceted web projects with the appropriate Liferay plugin facet. These projects are also Eclipse web projects, which are simply faceted projects with the web facet installed. To get Liferay Maven plugin projects recognized by Eclipse and working with the rest of its JEE tooling, the projects must be faceted as flexible web projects. The m2e-liferay plugin in concert with the following Eclipse plugins meet these requirements.
- m2e-core: Maven integration for Eclipse
- m2e-wtp: Maven integration for WTP
The m2e-core plugin contains the standard Maven tooling support for Eclipse. The
main benefits that m2e-core provides are dependency resolution classpath
management and an abstract project configuration framework for adapters. The
m2e-wtp plugin enables projects to be recognized as flexible web projects. This
m2e-wtp plugin provides project configuration mapping between the .war
package
type the POMs in the Maven model and the flexible web project support in
Eclipse.
With these Eclipse plugins in place, there’s just one piece remaining to make
Liferay Maven projects first-class citizens in Eclipse. The m2e-core plugin
must be explicitly told how to integrate the liferay-maven-plugin, so it can
add the liferay-maven-plugin goals (prefixed with liferay:
) to the standard
build life cycle. Normally without the m2e-liferay plugin, m2e-core users have to
specify manually the liferay-metadata-execution mapping themselves. The
m2e-liferay plugin automatically provides this mapping. The m2e-liferay plugin
also provides m2e-core with additional build participation integration to make
sure that Liferay Maven projects are handled properly in the Eclipse build
life cycle. For example, m2e-liferay makes sure that the Liferay Maven goal
liferay:build-css
is called when Eclipse deploys a Liferay theme plugin. Other
Liferay Maven goals are similarly enabled by m2e-liferay.
Now that you know the details of what the m2e-liferay plugin provides, you can appreciate how it facilitates developing Liferay Maven plugin projects in Liferay IDE. In the next section, you’ll learn how to set up your existing Liferay Maven plugin projects to use the m2e-liferay plugin for Maven life cycle mapping.
Setting Up Liferay Maven Facets in Existing Projects
Making sure that your project has the correct facets and Liferay Maven life cycle mapping is simple. Just right-click your project and select Properties. In the window that appears, open the Maven section on the left and then click Lifecycle Mapping.
If the life cycle mapping is correct, the liferay:build-css
item has a green
check mark next to it. The Mapping and Source fields for liferay:build-css
should
also contain configurator and extension, respectively. If the life cycle mapping
isn’t correct, then you can install the m2e-liferay plugin by following the
instructions contained in the tutorial
Using Maven from Liferay IDE.
If you have an existing Liferay Maven plugin project that you’d like to import
into Liferay IDE, the next section explains how to install the m2e-liferay
plugin during the import process.
Installing the m2e-liferay Plugin on Importing a Liferay Maven Plugin Project
Importing and installing the m2e-liferay plugin is straightforward when importing a Liferay Maven project that contains all of the required Liferay Maven properties. The plugin installer launches immediately after you specify the project to import, effectively combining these two processes. To begin, select File → Import in Liferay IDE. Then open the Maven section in the window that appears, select Existing Maven Projects, and click Next.
The next step is to specify the project to import. First, select the project’s
location in the Root Directory field. Once you select a project, its pom.xml
appears in the Projects field. Make sure that the checkbox next to the pom.xml
is checked. Note that this example imports the project maven-test
. Since
this project’s Liferay properties are contained in a profile in the
pom.xml
, the profile must be specified in the Profiles field of the Advanced
section. You don’t need to specify a profile here if the Liferay properties are
contained elsewhere in the project. For example, if the Liferay properties are
specified for the whole project in a <properties>
tag in the pom.xml
, then
you don’t need to put anything in the Advanced section. Click Finish when
you’re done here.
Now comes the magical part! Liferay IDE detects that you don’t have the correct
life cycle mappings for the project you’re importing and suggests an action;
install Maven integration for Liferay IDE (the m2e-liferay
plugin).
If at this point, the Setup Maven plugin connectors dialog displays a green check mark before each of the Maven build goals listed in the table, you can proceed to setup the Maven plugin connectors by clicking Finish and continuing to the next step. If a red check mark precedes any of the Maven build goals however, then you can resolve them by continuing to the next section.
The next set of steps takes you through the installation process for the
m2e-liferay
plugin. First, make sure that the checkbox for the m2e-liferay
plugin is checked and then click Next. This takes you to the window that lets
you review the items you’ve marked for installation. Verify that the
m2e-liferay
plugin is listed and click Next. The final window presents you
with the license agreements. Select the radio button to accept the license
agreements and click Finish. The following sequence of screenshots shows these
steps:
Upon clicking Finish, the m2e-liferay
plugin downloads and installs. Note that
this may take a few minutes to complete. When the installation is complete,
you’re prompted to restart Eclipse. Restart Eclipse and you’re all set!
As mentioned during the Maven plugin connector installation discussion, if the wizard detected missing Liferay properties, you can follow the instructions in the next section to resolve those missing properties on importing your Liferay Maven project.
Importing a Liferay Maven Project that is Missing Liferay Properties
What if the project that you want to import doesn’t contain Liferay properties? No sweat! Liferay IDE still has you covered. The initial import steps are the same as in the section above. The process diverges, though, after you specify the project to import. As before, Liferay IDE detects that you don’t have the correct life cycle mappings for the project you’re importing and suggests an action. However, since there are no Liferay properties in the project, it shows an error. When you click Finish, you’re presented with a warning that tells you you’re about to import a project that contains errors. Don’t worry! You’ll resolve this in the following steps. Click OK to move on.
As indicated in the previous dialog box, the project imports, but it contains
errors. To resolve this, you need to download and install the m2e-liferay
plugin. First, open the Liferay IDE preferences by selecting Window →
Preferences. Then open the Maven section on the left, select Discovery,
and click the Open Catalog button. This opens the catalog of plugins that can
be installed for Maven.
Now just scroll down in the catalog, check the checkbox for m2e connector for
liferay-maven-plugin, and click Finish. This launches the installer for the
m2e-liferay
plugin. The steps in the installer are identical to those in the
previous section. Once the installation completes and Liferay IDE restarts, the
error in your imported project is gone!
Great! Now you know how to resolve life cycle mapping errors for Liferay Maven
projects in Liferay IDE. Just remember that it’s the m2e-liferay
plugin that
takes care of the Maven life cycle mapping.
Related Topics
Developing Plugins with Liferay IDE