1. 程式人生 > >Liferay的熱部署與自動部署

Liferay的熱部署與自動部署

為了將Portlet應用部署到應用伺服器,Liferay Portal提供了熱部署(hot deploy)與自動部署(auto deploy)。熱部署與自動部署,通常二者是緊密聯絡的,但是又各有側重。

1.Liferay的熱部署
Liferay的熱部署依賴於應用伺服器的熱部署實現機制。
實質上,是將Liferay的熱部署目錄中的Portlet應用部署到應用伺服器的部署目錄。

不過,Liferay的熱部署在JBoss/WildFly的域模式下有缺陷,需要注意採取其他措施。

Liferay的熱部署的配置引數通常位於portal-impl.jar/portal.properties檔案中,具體如下:
hot.deploy.dependency.management.enabled=true
hot.deploy.listeners=...

hot.undeploy.enabled=true
hot.undeploy.interval=0
hot.undeploy.on.redeploy=false

Liferay的熱部署的配置引數通常無需修改,確實要修改則在ROOT.war/WEB-INF/classes/portal-ext.properties檔案中進行修改。

2.Liferay的自動部署

Liferay的自動部署依賴於Liferay的熱部署,是在Liferay的熱部署之前進行一些額外的注入。

Liferay的自動部署過程(注入Liferay必需的jar檔案和xml檔案到war):
注入必需的util-java.jar, util-taglib.jar
注入liferay-plugins.properties中宣告的jars
注入必需的標籤庫liferay-theme.tld
注入應用伺服器需要的部署描述符檔案
注入Liferay需要的部署描述符檔案,如liferay-portlet.xml

Liferay的自動部署配置引數:
auto.deploy.listeners=...
auto.deploy.enabled=true
auto.deploy.deploy.dir=${liferay.home}/deploy
auto.deploy.interval=3000
auto.deploy.unpack.war=true
auto.deploy.copy.commons.logging=true
auto.deploy.copy.log4j=true

auto.deploy.dest.dir=...
auto.deploy.default.dest.dir=../webapps
auto.deploy.jboss.dest.dir=${jboss.home.dir}/standalone/deployments
auto.deploy.jboss.dest.dir[5]=${jboss.server.home.dir}/deploy

Liferay的自動部署的配置引數通常無需修改,確實要修改則在ROOT.war/WEB-INF/classes/portal-ext.properties檔案中進行修改。

3.Liferay的portal屬性配置檔案載入的順序:
portal.properties
portal-bundle.properties
portal-ext.properties
portal-setup-wizard.properties
預設的portal例項liferay.com的配置檔案portal-liferay.com.properties
其他external-properties,如java ... -Dexternal-properties=portal-legacy-5.1.properties

其中:

portal.properties是Liferay Portal實現類庫portal-impl.jar中提供的預設配置檔案,通常無需修改,其中的一個配置引數給出了Liferay Portal的預設熱部署目錄如下:

auto.deploy.deploy.dir=${liferay.home}/deploy

portal-setup-wizard.properties是使用者初始化Liferay Portal,設定管理員使用者之後在應用伺服器的根目錄生成的配置檔案,其中最重要的配置引數如下:

liferay.home=...

4.Liferay Portal中Portlet應用的部署

1) 手工部署,將.war檔案複製到Liferay的熱部署目錄,然後藉助Liferay熱部署
Liferay的熱部署目錄與Liferay的主目錄有關。
對於Liferay Bundle釋出,Liferay的熱部署目錄預設就是$liferay.home/deploy目錄。
對於Liferay war釋出,Liferay的熱部署目錄預設為與應用伺服器同級的deploy目錄。


2) 在管理員的Control Panel中,通過Install上傳war檔案
事實上,被上傳的war檔案,首先被放置到Liferay的熱部署目錄,然後再借助Liferay熱部署

參考文獻:

https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/deploying-your-plugins-hot-deploy-vs-auto-deploy