Liferay中ext工程deploy时候的问题

Liferay中ext的发布不是很好。

直接把war包放到deploy的时候,并不能把最新的jar文件或者jsp等文件拷贝到root目录下面去。

这个对开发者来说非常的不方便。因为需要手动更新root下面的文件。


查看了ext的deploy的代码。找到了问题所在。

ExtHotDeployListener类中的 doInvokeDeploy方法里面有这样的代码:

                //Ext工程是否已经注册 
                if (ExtRegistry.isRegistered(servletContextName)) {
			if (_log.isInfoEnabled()) {
				_log.info(
					"Extension environment for " + servletContextName +
						" has been applied.");
			}

			return;
		}

		Map<String, Set<String>> conflicts = ExtRegistry.getConflicts(
			servletContext);
                //是否有冲突文件
		if (!conflicts.isEmpty()) {
                     。。。。
                     return;
                }
               //拷贝文件 
               installExt(servletContext, hotDeployEvent.getContextClassLoader());

	       FileAvailabilityUtil.reset();
通过这个代码可以知道,如果ext工程已经展开过的话,直接return了。并没有做拷贝动作。

同样,如果有冲突文件的话也直接return了。


这个地方的处理不知道liferay的意图。或许是为了维护ext工程的严密性。


开发阶段可以把上面的两个return去掉,每次都强制更新文件来解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值