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去掉,每次都強制更新文件來解決這個問題。

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