此功能允许你从xwiki以XAR文件方式导出一个或几个页面,或者导入一个或多个页面。当你需要移动wiki页面从一个实例到另一个实例,或者实现轻量级备份,这将是很好用的功能。
此功能不能取代xwiki的备份功能
导入XWiki页面
前提条件:
- 从XWiki 5.0+开始 如果你的wiki是空的并且是第一次导入,那么首先你需要作为超级管理员登陆,因为此时wiki没有定义用户
- 配置数据库和Servlet容器。如果没有,请看安装指南
请按照下列步骤操作:
- 确保你的数据库和容器启动
- 在浏览器中输入http://localhost:8080/xwiki/bin/admin/XWiki/XWikiPreferences 或单击"Wiki"菜单,然后点击"Administer Wiki"
- 点击 "Import"
- 附上你要导入XAR文件,然后从在"Available packages"下列表中选择。几秒钟后,你会看到你的XAR列出所有页面并选中默认:
- 如果你想把导入包的历史版本替换文档的历史版本则选择第二个单选按钮。如果你不选择它,新导入的页面版本将为“1.1”
- 点击"Import",这将导入所有选择的页面
- 在这个阶段,你的权限可能由于导入包导致权限被修改。你需要注销并重新登录
如果你拥有的子wiki(虚拟wiki,wiki-farm),你需要确保:
- 安装的时候有一个全局用户拥有编程权限(Programming Rights),取消选中backup pack选项
- 安装的时候有一个全局用户拥有编程权限和保留backup pack选项,但在这种情况下,确保XAR里面有定义用户存在并具有编程权限
否则,所有导入的页面将被为保存为没有编程权限,这会导致脚本将无法正常工作,除非重新保存在具有编程权限用户下
注意,需要编程权限的页面应该还包含一个XWiki.RequiredRightClass对象,便于查询它们。如果你发现一些没有这个对象,请告诉我们。这里的对象只是象征性的,不会改变权限。
如果你得到一个“Java heap space Out Of Memory exception'的异常,那么你需要增加分配给JVM运行XWiki的内存。如何做到这一点取决于你使用的容器:
- 对于 Jetty 需要在 start_xwiki.bat (或者 start_xwiki.sh) 修改JAVA_OPTS=-Xmx300m 如 JAVA_OPTS=-Xmx1024m
- 对于Tomcat需要设置 CATALINA_OPTS 如 -Xmx1024m
导入一个扩展程序
当你导入一个XAR时,如果XAR的package.xml包含一个extensionId值(代表扩展程序ID),那么导入的时候将要检查此扩展程序是否存在于xwiki的扩展库里。(配置位于xwiki.properties下的extension.repositories key)。如果找到这个扩展程序,那么导入者需要在installed Extensions列表中注册。
导出XWiki页面
前提条件:
- 已配置数据库和Servlet容器。如果没有,请看安装指南
请按照下列步骤操作:
- 确保你的数据库和容器启动
- 在浏览器中输入 http://localhost:8080/xwiki/bin/admin/XWiki/XWikiPreferences
- 点击"Export"并填写表单
- 点击 "Export"
自定义XAR
在做导出时,XWiki页面使用的是XAR格式保存。一个典型的XAR在创建的时候将导出包括你的XWiki实例中的所有页面。但是,你可以使用自定义导出URL来控制。
这就是说,它也可以创建一个XAR只包括你所需的页面。例如,当你想要导出特定应用程序的页面,具体操作步骤如下:
- 解压文件
- 留下你想要的页面
- 编辑package.xml删除你不想要的页面
- 压缩修改后的package.xml文件和你想要的页面,文件命名为“MyArchive”.xar,其中“MyArchive”是你想给它的实际名称
- 完成!现在你可以在任何xwiki实例导入该组特定页面
在未来,XWiki将提供本地做选择性的导出。就目前而言,你需要安装Multipage Export Extension.
XAR格式
查看XAR格式规范。