java - 你能删除你不想要/不需要的 sakai 核心工具吗?

标签 java maven core sakai

我最近一直在想,是否有可能在不付出巨大努力(编辑大量配置文件)的情况下从 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)中将其视为空白页面)。如果将该工具重新添加到系统中,它将再次出现在页面上。 Sakai Samigo missing tool

更新:如果您想删除空白工具页面,有一个简单的选项。简单的选择是进入站点并删除该工具所在的页面。这可以通过站点管理工具完成。

或者,您可以进入数据库并删除所有包含特定工具 ID 的页面。不过风险很大,所以不推荐。 通常,删除此类工具会在该工具用于生产之前发生,因此希望这种情况很少见。

关于java - 你能删除你不想要/不需要的 sakai 核心工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306189/

相关文章:

java - j2me中的xml解析

Java使用synchronized关键字进行锁

java - weka GUI 和 Java 代码给出不同的结果

java - 不要将 gradle 子项目安装为外部依赖项

java - 是否可以与依赖项目共享构建 Maven 配置文件属性

java - 如何让 log4j2 使用 Spring Boot 和 Maven 创建不同的日志文件

java - 字符串连接所需的解决方法

java - 为什么 Google Cloud Endpoints 不支持简单的对象返回类型?

c++ - 获取“段错误 : core dumped when trying to write string to setter

java - 检查文件是否存在java