Sakai 架构实际上更类似于许多松散(或在某些情况下紧密)耦合的工具,而不是一个统一的系统。从您可以在这里做您想做的事情的角度来看,这是一个优势。从统一的用户体验角度来看,这是一个缺点(尽管这不是架构限制,而是工具团队在项目早期运行方式的副作用)。
如果你想删除一个工具(比如这个例子中的 Samigo),那么你可以简单地从你的 TOMCAT_HOME/webapps 目录中删除与之相关的 war 文件(和目录)。从你的 tomcat 主目录运行它:
rm -rf webapps/samigo-app*
当您启动 tomcat 时,该工具将不会被加载并且一切都会正常工作(假设没有其他工具或 Sakai 的一部分期望该工具存在)。出于这个原因,不应删除诸如资源(sakai-content-tool)之类的一些工具(尽管隐藏它们会很好)。
请注意,仅删除该工具不会像您希望的那样为您节省很多,因为在 TOMCAT_HOME/components 中还有一项与大多数工具相关的服务。服务组件实际上是一个分解的war文件(与工具webapp基本相同),但它没有接口,必须遵循一些Sakai约定才能正确加载。在 Samigo 的情况下,您可以像这样删除它(从您的 tomcat 家运行):
rm -rf components/samigo-pack
您不应该在系统运行时执行此操作。您也不应该从共享中删除 API jar。
当您在移除组件后重新启动 Sakai 时,您会看到资源的显着下降,因为工具服务不再加载到内存中并已初始化。通过删除 Samigo 及其服务,我看到启动时间减少了大约 5 秒(90 秒到 85 秒),使用的 JVM 内存减少了大约 25MB(从 795 到 770)。
您最好的选择是“反复试验”出适合您情况的最佳解决方案,并尝试删除工具及其服务(如果有的话)并查看是否启动时没有错误以及您使用的工具是否按预期工作。
另外,请注意删除工具不会删除现有课程中的工具页面。您最终会得到一个什么都不显示的页面(因为 Sakai 现在在课程中将其视为一个空白页面)。如果您将该工具重新添加到系统中,那么它将再次出现在页面上。
更新:如果您想删除空白工具页面,有一个简单的选择。简单的选择是进入该站点并删除该工具所在的页面。这可以通过站点管理工具完成。
或者,您可以进入数据库并删除所有包含特定工具 ID 的页面。不过这个风险很大,不推荐。通常,此类工具的移除会在该工具用于生产之前发生,因此希望这种情况很少见。