Liferay 7: problemas de dependecias al hacer el build inicial de un theme

Versiones en las que se se ha probado el contenido de este post:

  • Liferay CE 7.0 GA4 / 7.0 GA5
  • Liferay IDE 3.1.1 GA2 / 3.1.2 GA3

Creación de Liferay Workspace

En caso de no tener el workspace creado, procedemos a crear uno nuevo que en este caso he llamado "RIS-Web" (de tipo Gradle). He optado por descargar el bundle de Liferay en el propio workspace y Eclipse ha creado por el defecto el servidor de mismo nombre.

 

Vamos a fijarnos en el fichero que contiene la configuración de dependencias y repositorios del workspace: "settings.gradle":

 

Ficheros de gradle en el workspace

 

 

Settings.gradle del workspace

Hay que editar este fichero para establecer el repositorio maven del que descargar las dependencias. La URL que trae por defecto no es pública, por lo que desde la versión 7.0 CE no tendremos acceso a ella y será imposible hacer el build de cualquier componente.

 

En rojo están los cambios realizados, comentando las líneas que trae el script e insertando las válidas:

buildscript {
   dependencies {
      classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "1.5.0"
      classpath group: "net.saliman", name: "gradle-properties-plugin", version: "1.4.6"
   }
   repositories {
      mavenLocal()
      maven {
           //url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
           url "https://repository.liferay.com/nexus/content/groups/public/"
      }
   }
}
apply plugin: "net.saliman.properties"
apply plugin: "com.liferay.workspace"
 
Tras este cambio sería bueno refrescar el proyecto Gradle, con lo que nos situamos sobre la raíz del workspace y con el botón derecho del ratón seleccionamos "Gradle -> Refresh Gradle Project":
 

Resfrescar el proyecto Gradle

 

Crear el Theme

En estos momentos ya estamos en disposición de crear el Theme desde la opción "File -> New -> Liferay Module Project".

En la ventana que aparece deberemos establecer el nombre del theme y el directorio del que colgará. Por defecto (desconozco el motivo), Liferay establece el directorio "modules" para crear el tema pero yo prefiero que esté localizado en el directorio "themes". A continuación hay que establecer "theme" en la opción "Project Template Name":

Wizard de nuevo Theme

 

Al pulsar el botón "Finish" se procederá a crear la estructura del theme en nuestro workspace.

 

En la raíz del proyecto tendremos el fichero "build.gradle", que deberemos editar para establecer nuevamente el repositorio maven para decargar las preferencias.

 

Fichero build.gradle del theme

 

En el siguiente código se muestran en rojo los cambios que he realizado, entre los que se incluye la actualización de las últimas versiones disponibles a fecha de hoy (24/08/2017):

buildscript {
   dependencies {
      classpath group: "com.liferay", name: "com.liferay.gradle.plugins.theme.builder", version: "2.0.3"
   }
   repositories {
      mavenLocal()
      maven {
         //url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
         url "https://repository.liferay.com/nexus/content/groups/public/"
      }
   }
}
apply plugin: "com.liferay.portal.tools.theme.builder"
dependencies {
   parentThemes group: "com.liferay", name: "com.liferay.frontend.theme.styled", version: "2.0.28"
   parentThemes group: "com.liferay", name: "com.liferay.frontend.theme.unstyled", version: "2.1.16"
   portalCommonCSS group: "com.liferay", name: "com.liferay.frontend.css.common", version: "2.0.4"
   themeBuilder group: "com.liferay", name: "com.liferay.portal.tools.theme.builder", version: "1.1.4"
}
 

Importar el Theme como un proyecto Gradle

Ahora que está creado el theme existe un problema con la versión actual del IDE, y es que no aparece automáticamente en Eclipse como un project Gradle, con lo que en la vista "Gradle Tasks" no estará visibles las tareas para hacer el build del proyecto.

 

Si os ocurre esto mismo, deberéis ir a "File -> Import..." y en la ventana seleccionar "Gradle -> Existing Gradle Project". Ya solo falta seleccionar la raíz de nuestro Theme:

 

Selección de la raíz del Theme

 

Y tras pulsar "Finish" se desplegarán las tareas de Gradle en la vista "Gradle Tasks". Si no ocurriera de forma automática, suele ser buen intento cerrar el proyecto y después abrirlo de nuevo:

 

 

Ahora ya tenéis el proyecto listo para comenzar.