根据指南,向XWiki添加新组件涉及将jar文件放入XE_WAR_HOME/WEB- INF/lib。但是,在使用新组件之前,我似乎需要重新启动tomcat。有没有办法解决这种重启?组件管理器设法从存储库中安装新组件,而无需重新启动tomcat,因此原则上似乎可行…
XE_WAR_HOME/WEB- INF/lib
与此相关的是,如果我用具有相同名称的更新版本替换了jar,即使重新启动tomcat似乎也不会更新现有组件。那么在这种情况下,我可以显式触发重新加载吗?
同时,该指南已更新,并显示了如何执行此操作。
注意 :当前使用码头作为容器时,以下操作无效;请参阅以下错误报告:http : //jira.xwiki.org/browse/XWIKI-12781
简而言之:将本地Maven存储库添加到xwiki.properties:
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/
(需要另外两行来重新添加“默认”存储库)
在Wiki 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}"
如果要使用此脚本,必须xwiki.properties通过设置禁用CSRF-Protection csrf.enabled = false。(或者,您可以通过从响应中的HTML读取csrf令牌来修改脚本。)
csrf.enabled = false
该脚本没有错误处理。如果执行后没有看到更新,请执行上面概述的步骤以找出问题所在。