我使用的是xwiki Enterprise 7.4。安装扩展的官方方法是使用导入功能或Extension Manager。两种方式都需要用户交互。我想自动化扩展安装过程,因此没有用户交互扩展安装。可能吗?我通过REST API自动创建空间/页面。也许可以使用REST API来完成它,我在文档中找不到它。
为什么需要它?这很简单:我已经为我的应用程序自动完成了部署/迁移过程的所有步骤,我也希望自动化xwiki扩展安装。
答案 0 :(得分:2)
如Vincent所示,您可以使用XWiki内部的扩展脚本服务。这个脚本服务就是UI所使用的,因此UI所做的一切也可以通过任何脚本完成(只要脚本作者具有适当的权限)。
我刚在http://extensions.xwiki.org/xwiki/bin/view/Extension/Extension+Script+Module#HNon-interactiveandsynchronousinstall上写了一个Velocity示例:
{{velocity}}
## Create install request for extension with id org.xwiki.contrib:extension-tweak and version 1.3 on current wiki
#set($installRequest = $services.extension.createInstallRequest('org.xwiki.contrib:extension-tweak', '1.3', "wiki:${xcontext.database}"))
## Disable interactive mode
$installRequest.setInteractive(false)
## Start install
#set($installJob = $services.extension.install($installRequest))
## Wait until install is done
$installJob.join()
{{/velocity}}
答案 1 :(得分:1)
XWiki Core开发团队已经意识到这一点,并且它已经在路线图中了,但还没有完成。例如,您可以看到它已计划用于8.0路线图,但它已滑落(http://www.xwiki.org/xwiki/bin/view/Roadmaps/Archives8xCycle/)。
继续改进升级工具:可编写脚本的升级(优先级1),模拟(优先级2)
目前似乎没有为此创造任何问题。如果你能在XWiki平台项目的http://xwiki.org创建一个JIRA问题,那就太棒了。
现在关于扩展程序,可以使用一些可用于操作扩展程序的脚本服务,请参阅http://extensions.xwiki.org/xwiki/bin/view/Extension/Extension+Script+Module
查看java代码我没有亲自使用此脚本服务,因此我无法提供使用此API的真实示例
答案 2 :(得分:1)
你需要的只是把托马斯'页面中的脚本。您可以使用REST API。请参阅:http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI#HPageresources
然后从您的应用程序中调用URL。
例如:您使用REST调用将代码放在XWiki/AutoInstall
中,然后您可以使用以下网址调用此页面:
http://localhost:8080/xwiki/bin/get/XWiki/AutoInstall
我建议使用" get"来自URL的操作以避免不必要的信息。