根據guide,向XWiki添加新組件涉及將該jar文件放入XE_WAR_HOME/WEB-INF/lib
。不過,我似乎需要重新啓動tomcat才能使用新組件。有沒有解決這個重啓的方法?組件管理器管理從存儲庫安裝新組件,而不重新啓動tomcat,所以原則上似乎可能...Xwiki重新加載組件jar
在相關的一點上,即使重新啓動tomcat似乎不更新現有組件,如果我更換一個jar與同名的更新版本。那麼在這種情況下,我可以明確觸發重新加載嗎?
根據guide,向XWiki添加新組件涉及將該jar文件放入XE_WAR_HOME/WEB-INF/lib
。不過,我似乎需要重新啓動tomcat才能使用新組件。有沒有解決這個重啓的方法?組件管理器管理從存儲庫安裝新組件,而不重新啓動tomcat,所以原則上似乎可能...Xwiki重新加載組件jar
在相關的一點上,即使重新啓動tomcat似乎不更新現有組件,如果我更換一個jar與同名的更新版本。那麼在這種情況下,我可以明確觸發重新加載嗎?
本指南已在此期間進行了更新並顯示瞭如何處理此問題。
注意:當使用jetty作爲容器時,以下方法不起作用;見bug報告:http://jira.xwiki.org/browse/XWIKI-12781
簡而言之:本地Maven回購添加到xwiki.properties
:
extension.repositories=local:maven:file://${sys:user.home}/.m2/repository
extension.repositories=maven-xwiki:maven:http://nexus.xwiki.org/nexus/content/groups/public
extension.repositories=extensions.xwiki.org:xwiki:http://extensions.xwiki.org/xwiki/rest/
(另兩條線都需要重新添加「默認」回購)
在維基UI,安裝Extension Tweak
然後,對於每個構建週期:
mvn install
my.extension.group:my-extension-id
和版本 - 即。 0.1-SNAPSHOT
)因爲我不想讓我的答案限制在指南中照搬「HOWTO」,這裏是一個小的腳本,應該做的「重裝」的一部分(即使用它運行後mvn install
)爲您提供:
# "config" section:
# variables should be URL encoded; '%3A' is ':'
EXTENSION_ID=org.xwiki.contrib%3Aapplication-mocca-calendar-ui
VERSION=2.5-SNAPSHOT
BASE_URL=http://localhost:8080/xwiki
# of course you can use curl here if you prefer
WGET="wget -q -O /dev/null --auth-no-challenge --http-user=Admin --http-password=admin"
# alternative for debugging
#WGET="wget -S -O - --auth-no-challenge --http-user=Admin --http-password=admin"
QUERY="extensionId=${EXTENSION_ID}&extensionVersion=${VERSION}&extensionNamespace=wiki%3Axwiki&form_token=dummy"
set -o errexit
# first remove the old version of the extension
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=uninstall&${QUERY}"
# confirm uninstall
sleep 1
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=continue&${QUERY}"
# confirm uninstall again (this time to "remove unused pages")
sleep 1
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=continue&${QUERY}"
# flush the cache
$WGET "${BASE_URL}/bin/get/Admin/InstalledExtensionsTweak?basicauth=1&eaction=clean_confirm"
# add new version
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=install&${QUERY}"
# confirm: start adding
sleep 1
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=continue&${QUERY}"
# just in case we get a conflict: overwrite with new version
sleep 1.5
$WGET "${BASE_URL}/bin/get/XWiki/AddExtensions?basicauth=1&extensionAction=continue&autoResolve=true&versionToKeep=NEXT&${QUERY}"
如果您要使用此腳本,您必須通過設置:csrf.enabled = false
來禁用xwiki.properties
中的CSRF保護。 (或者,您可以通過從響應中的HTML中讀取csrf令牌來修改腳本。)
該腳本沒有錯誤處理。如果執行後沒有看到更新,請執行上面列出的步驟來確定哪裏出了問題。
棒極了。感謝這樣一個詳細的答案。 – beldaz 2015-11-16 21:25:59