This article is a legacy article. It applies to previous versions of the Liferay product. While the article is no longer maintained, the information may still be applicable.
In this article we'll start by creating a new parent project for your plugins and add a portlet project to it. You need to have your maven environment setup with maven and java installed. Please refer to Maven resources such as Maven: The Complete Reference.
Resolution
- Download and install a Liferay 6.1 bundle.
Please note, these instructions will be in reference to a Tomcat Bundle, but any bundle can be used. The bundle install location will be referred to as
LIFERAY_HOME
from now on. If you need instructions on how to install bundle please refer to Liferay 6.1 User Guide. - Create a new directory which will be your project root. This is the location where you would extract Liferay plugins SDK if you were using Ant. Then in that directory create a pom.xml file.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.liferay.sample</groupId> <artifactId>sample-project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>
<name>sample-project</name> <url>http://www.liferay.com</url>
Now adjust the groupId and artifactId to match your project. Also set the value ofliferay.auto.deploy.dir
toLIFERAY_HOME/deploy
. This is where the plugin is copied for Liferay Portal to deploy. Theliferay.version
property is set to version of Liferay Portal that you are using. -
Open command prompt or terminal and go to your project directory. Next, create a portlet project using a Liferay portlet project template, and run the following command:
mvn archetype:generate
That command will create a list of available project templates like below:
... 21: remote -> com.liferay.maven.archetypes:liferay-ext-archetype (Provides an archetype to create Liferay extensions.) 22: remote -> com.liferay.maven.archetypes:liferay-hook-archetype (Provides an archetype to create Liferay hooks.) 23: remote -> com.liferay.maven.archetypes:liferay-layouttpl-archetype (Provides an archetype to create Liferay layout templates.) 24: remote -> com.liferay.maven.archetypes:liferay-portlet-archetype (Provides an archetype to create Liferay portlets.) 25: remote -> com.liferay.maven.archetypes:liferay-servicebuilder-archetype (Provides an archetype to create Liferay Service Builder portlets.) 26: remote -> com.liferay.maven.archetypes:liferay-theme-archetype (Provides an archetype to create Liferay themes.) 27: remote -> com.liferay.maven.archetypes:liferay-web-archetype (Provides an archetype to create Liferay webs.) ...
Choose a number or apply filter (format:[groupId:]artifactId
, case sensitive contains): 171:Choose number 24 or what ever the number you have for
com.liferay.maven.archetypes:liferay-portlet-archetype
Next you will be asked to choose the template version:Choose version:1: 6.0.22: 6.0.33: 6.0.44: 6.0.55: 6.0.66: 6.1.07: 6.2.0-SNAPSHOTChoose number 6 for 6.1.0 version. Next you will be asked to provide groupId, artifactId and version:
Define value for property 'groupId': : com.liferay.sample Define value for property 'artifactId': : sample-portlet Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.liferay.sample: : Confirm properties configuration: groupId: com.liferay.sample artifactId: sample-portlet version: 1.0-SNAPSHOT package: com.liferay.sample Y: :
For groupId use the same as in the first pom.xml. In the tets case it would be com.liferay.sample. For artifactId use sample-portlet as this is the directory it will create. Version should be the same as the project parent. Once you have confirmed the values maven will create the portlet project and add it to you parent project as module automatically.
Now you project structure should be something like this:pom.xml sample-portlet sample-portlet/pom.xml sample-portlet/src sample-portlet/src/main sample-portlet/src/main/java sample-portlet/src/main/resources sample-portlet/src/main/webapp sample-portlet/src/main/webapp/css sample-portlet/src/main/webapp/css/main.css sample-portlet/src/main/webapp/icon.png sample-portlet/src/main/webapp/js sample-portlet/src/main/webapp/js/main.js sample-portlet/src/main/webapp/view.jsp sample-portlet/src/main/webapp/WEB-INF sample-portlet/src/main/webapp/WEB-INF/liferay-display.xml sample-portlet/src/main/webapp/WEB-INF/liferay-plugin-package.properties sample-portlet/src/main/webapp/WEB-INF/liferay-portlet.xml sample-portlet/src/main/webapp/WEB-INF/portlet.xml sample-portlet/src/main/webapp/WEB-INF/web.xml
-
Go to sample-portlet directory and run
mvn package
This will compile any classes and packages the portlet war file in target directory.
-
To deploy the portlet into your Liferay bundle you can run
mvn liferay:deploy
Now you have created your first Liferay plugin project with maven and deployed it to your Liferay bundle.
Additional Information
For more information on how Maven is supported, see our page on Fix Delivery Methods.
Important: Information about products not created by Liferay is provided for informational purposes only and does not constitute Liferay Subscription Services recommendation nor endorsement. Liferay also does not assume any responsibility for any instructions herein or referenced regarding these products.