我最近一直在想,是否有可能在不付出巨大努力(编辑大量配置文件)的情况下从 sakai vanilla 构建中真正“删除”核心工具?
我知道隐形工具 (https://confluence.sakaiproject.org/display/DOC/Provisional+Tools),我“认为”有一些方法可以“禁用”工具(或者这只是隐形?),但只是为了消除潜在问题的可能性并降低服务内存占用+ 启动时间 如果有一种支持的方式“服务中根本没有 X Y 或 Z 工具”,那就太好了。
我从来没有尝试过只删除 jars 看看会发生什么,但我怀疑这可能不是一个好主意,可能需要使用部署到 webapp 目录的工具进行编译,我认为这意味着改变一个整体加载 maven 文件以执行“mvn clean install sakai:deploy”,这样会更轻便。
最佳答案
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)。
你最好的选择是“反复试验”找出适合你情况的最佳解决方案,并尝试删除一个工具及其服务(如果有的话),看看是否可以正常启动,以及你使用的工具是否有效正如预期的那样。
另请注意,删除工具不会删除现有类(class)中的工具页面。您最终会得到一个什么都不显示的页面(因为 Sakai 现在在类(class)中将其视为空白页面)。如果将该工具重新添加到系统中,它将再次出现在页面上。
更新:如果您想删除空白工具页面,有一个简单的选项。简单的选择是进入站点并删除该工具所在的页面。这可以通过站点管理工具完成。
或者,您可以进入数据库并删除所有包含特定工具 ID 的页面。不过风险很大,所以不推荐。 通常,删除此类工具会在该工具用于生产之前发生,因此希望这种情况很少见。
关于java - 你能删除你不想要/不需要的 sakai 核心工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306189/