Configuración de Plugins SDK en Liferay 7

Versiones a las que se puede aplicar este post:
  • Liferay CE 7.0 GA3 / Liferay CE 7.0 GA4
  • Liferay Plugins SDK 7.0 GA3 / Liferay Plugins SDK 7.0 GA4

 

Previo a la instalación de Liferay Plugins SDK 7

Antes de instalar este entorno, es necesario que hayamos instalado previamente:

  • Liferay IDE
  • El Bundle de Liferay CE 7 Portal o bien manualmente el Tomcat 8.0.x y el portal por separado.

 

Instalación de Liferay Plugins SDK 7

La instalación en esta versión de Liferay consiste tan solo en descomprimir el fichero "com.liferay.portal.plugins.sdk-7.0-ga3-20160804222206210.zip" en el lugar que decidamos de nuestro disco duro. Al igual que ocurría con la versión 6.2, los plugings que creemos se encontrarán bajo este directorio descomprimido en su lugar correspondiente (hooks, portlets, themes...):

Fichero del Plugins SDK 7 descomprimido

 

Creación de un pluging con el SDK

Una vez instalado Liferay IDE, el primer paso es seleccionar el tipo de pluging que vamos a desarrollar desde la opción "File -> New -> Liferay Pluging Project":

Nuevo proyecto Pluging SDK 7

Una vez establecido el nombre del pluging y seleccionado su tipo, aparecerá una ventana para que establezcamos la ruta al directorio en el que hemos descomprimido el fichero zip con el Plugins SDK:

Seleccionar el directorio del Plugings SDK

(Casi) inevitablemente obtendremos el siguiente error al seleccionar el directorio:

Error al seleccionar el directorio del Plugings SDK

Este error se debe a no haber configurado correctamente el fichero "build.properties" ubicado en el directorio padre del Plugings SDK.

Para ello se recopienda copiar el fichero como "build.{username}.properties" y hacer las modificaciones sobre esta nueva versión. Las claves a tener en cuenta para verificar si las rutas son correctas en nuestro sistema de directorios son:

 

#
# Specify the application server type.
#
app.server.type=tomcat

#
# Specify the application server parent directory.
#
#app.server.parent.dir=${sdk.dir}/../bundles
app.server.parent.dir=C:/liferay-ce-portal-7.0-ga3

#
# Specify the paths to an unzipped Tomcat bundle.
#
app.server.tomcat.dir=${app.server.parent.dir}/tomcat-8.0.32

Fijaos en las líneas en letra roja, que muy posiblemente tengáis que modificar para 1) establecer el directorio padre de nuestro tomcat y 2) el directorio del tomcat que podría variar si vamos descargando versiones superiores.

Tras este cambio en el fichero "build.{username}.properties" y reiniciando Eclipse, Liferay IDE reconocerá el Plugins SDK y no se mostrará el error anterior:

Selección correcta del directorio del Plugings SDK

 

Configuración de ivy-settings.xml

Al pulsar sobre "Finish" en la ventana anterior, comenzará el proceso de descarga de dependencias del proyecto.

Los repositorios y dependencias se encuentra en el fichero "ivy-settings.xml" ubicado en el directorio padre de Plugins SDK.

Nos encontraremos ahora con otro problema debido a que el repositorio desde el que se intenta descargar las dependencias es un repositorio privado de Liferay del que no tenemos usuario y contraseña. Tras un tiempo de espera, obtendremos una traza de error indicando que ivy no ha sido capaz de conectarse a los repositorios de descarga. Para solventar este asunto, deberemos modificar el fichero anterior.

El contenido del fichero "ivy-settings.xml" es:

<ivysettings>
     <settings defaultResolver="default" />
     <credentials host="repository.liferay.com" 
                passwd="${ivy.repository.liferay.private.password}" 
                realm="Sonatype Nexus Repository Manager" 
                username="${ivy.repository.liferay.private.username}"/>
     <resolvers>
          <ibiblio m2compatible="true" 
                 name="liferay-private" 
                 root="${ivy.repository.liferay.private.url}"/>
          <ibiblio m2compatible="true" 
                 name="liferay-public" 
                 root="https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public" />
          <ibiblio m2compatible="true" 
                 name="local-m2" 
                 root="file://${user.home}/.m2/repository" />
          <chain dual="true" name="default">
               <resolver ref="local-m2" />
               <resolver ref="liferay-public" />
               <resolver ref="liferay-private" />
          </chain>
     </resolvers>
</ivysettings>

Y lo sustituiremos por este otro que accede al repositorio público correcto de Liferay (en rojo los cambios):

<ivysettings>
     <settings defaultResolver="default" />
 <!-- credentials host="repository.liferay.com" 
                    passwd="${ivy.repository.liferay.private.password}" 
                    realm="Sonatype Nexus Repository Manager" 
                    username="${ivy.repository.liferay.private.username}" / -->
     <resolvers>
      <!-- ibiblio m2compatible="true" 
                     name="liferay-private" 
                     root="${ivy.repository.liferay.private.url}" / -->
          <ibiblio m2compatible="true" 
                 name="liferay-public" 
                 root="https://repository.liferay.com/nexus/content/repositories/public/" />
          <ibiblio m2compatible="true" 
                 name="local-m2" 
                 root="file://${user.home}/.m2/repository" />
          <chain dual="true" name="default">
               <resolver ref="local-m2" />
               <resolver ref="liferay-public" />
           <!-- resolver ref="liferay-private" / -->
          </chain>
     </resolvers>
</ivysettings>
 
Tras reiniciar eclipse y volver a crear el proyectose descargarán -por fin- todas las dependencias correctamente y se creará el proyecto de nuestro pluging sin problemas.
Blogs

Hola,

 

Estoy loco buscando donde descargarme el SDK para las versiones 7.x del portal Liferay CE.

¿ Alguna pista ?

 

Utilizo Liferay Developer Studio para la creación de Portlets y me pide la ruta del SDK y no hay forma.

Con la anterior versión del portal, la 6.1.1 GA2 se podían descargar por separado y tengo todo compilado perfectamente desde hace algunos años.

 

Queremos hacer un upgrade a la nueva versión 7 del portal y no logramos encontrar en la web donde poder realizar la descarga del SDK correcto.

 

Cualquier ayuda será bienvenida.

Saludos

 

Jordi Carreras

Barcelona

Hola:

Si no estoy equivocado, el Plugins SDK existe hasta la versión 7.0. Puedes encontrar el adecuado según tu versión aquí:

 

https://sourceforge.net/projects/lportal/files/Liferay%20Portal/

 

En la versión 7.1, aunque existe compatibilidad con los componentes anteriores (portlets, hooks, etc.) parece que no hay un soporte directo de desarrollo mediante el SDK, al menos yo no lo he encontrado. Todas las herramientas posibles ya están integradas en el Liferay Developer Studio.

 

A ver si algún miembro de Liferay nos puede confirmar si estoy en lo cierto...

 

Saludos,

Santiago

Efectivamente, tras hablar con algunos miembros de Liferay, el soporte Plugins SDK en Liferay 7.1 ha desaparecido y todos los desarrollos deben ir con el nuevo "Liferay workspace".

 

En este enlace han actualizado todos los elementos que en la versión 7.1 desaparecen (en donde ya figura Plugins SDK en la sección Foundation):

 

https://dev.liferay.com/es/discover/deployment/-/knowledge_base/7-1/deprecated-apps-in-7-1-what-to-do#foundation

 

Saludos,

Santiago