O desenvolvimento de sites em portais como o Liferay hoje em dia é talvez tão simples quanto usar construtores de sites e pode até ser ainda mais fácil e rápido do que usar o popular SMS em PHP. Ao mesmo tempo, você mantém o controle sobre todos os seus dados com a liberdade de colocá-los em qualquer lugar e não depender do provedor de serviços, bem como a capacidade de fazer modificações de qualquer complexidade usando bibliotecas de alta qualidade sem quebrar muito nos recursos independentes das tecnologias "leves".
A facilidade de trabalhar com materiais da web é formada por fatores como:
desenvolveu sistema de publicação e layout como nos construtores
a capacidade de criar temas com pouco ou nenhum código
Você pode verificar facilmente a validade do primeiro ponto baixando o kit de distribuição do portal em sf.net:
https://sourceforge.net/projects/lportal/files/Liferay%20Portal/
Em seguida, descompacte-o e execute startup.bat (ou .sh) do subdiretório
tomcat-xyz / bin
Para começar, você não precisará instalar nada além do Java instalado.
Durante a primeira inicialização, o portal irá especificar algumas configurações, criar um administrador e pedir para reiniciar o portal, para parar o script shutdown.bat é usado.
Após o login como administrador, um painel com dois painéis laterais deslizantes aparecerá na parte superior, o que permitirá a você criar sites e materiais, se desejar, sem escrever nenhum código.

.
" ", "" . . , , .. .
, ant gradle, gulp. , . yeoman,
npm install -g yeoman generator-liferay-theme
7.1.
-
npm install -g generator-liferay-theme@8.x.x
7.x.x
, , . Liferay, gradle , 3 , 7.3+. . . .
yo liferay-theme
:
- - {_}-theme
-
-
- tomcat-x.y.z .
FontAwesome .
.
npm install
.
IntelliJ IDEA liferay .
build.
gulp build
dist/ .war deploy/ .
deploy, .
“ ” .
(/) , .
build/, war’ . templates/ .. , src/ .
portal_normal.ftl -
navigation.ftl -
portlet.ftl -
init_custom.ftl - , init.ftl
. .. , .
, .
src/css/_custom.scss
.
:
/o/{__}/{__src}/{_}.{}
.. :
http://localhost:8080/o/my-theme/images/heder.jpg
- , , , portal-ext.properties .
theme.css.fast.load=false
theme.images.fast.load=false
javascript.fast.load=false
layout.template.cache.enabled=false
browser.launcher.url=
combo.check.timestamp=true
freemarker.engine.cache.storage=soft:1
freemarker.engine.modification.check.interval=0
openoffice.cache.enabled=false
velocity.engine.resource.manager.cache.enabled=false
com.liferay.portal.servlet.filters.cache.CacheFilter=false
com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter=true
com.liferay.filters.strip.StripFilter=false
com.liferay.portal.servlet.filters.header.HeaderFilter=false
javascript.single.page.application.enabled=false
.
. node_modules, .war . gulpfile.js :
var gulp = require('gulp');
var liferayThemeTasks = require('liferay-theme-tasks');
var copy = require('gulp-copy');
gulp.task('copy-key-toggler', function() {
return gulp.src('./node_modules/key-toggler/src/key-toggler.js')
.pipe(gulp.dest('./build/js/'));
});
liferayThemeTasks.registerTasks({ gulp,});
gulp.task('build:war', gulp.series('copy-key-toggler', 'build:war'));
Você pode ler sobre como desenvolver aplicativos para portais como o Liferay em meus outros artigos, por exemplo este: