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去掉,每次都强制更新文件来解决这个问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章