构建非常简单的极简Java插件容器

构建非常简单的极简Java插件容器,java,plugins,containers,modularity,loose-coupling,Java,Plugins,Containers,Modularity,Loose Coupling,我正在开发一个应用程序,我需要构建一个非常小且最小的插件容器 以下是我努力实现的目标 应用程序被分成更小的插件,这些插件打包成JAR 插件容器应该得到它们并加载所有JAR 每个插件都不应该干扰其他插件,应该与依赖的库一起独立运行。基本上所有插件都应该在运行时隔离 我尝试使用OSGI容器,但它增加了高度复杂性。另外,许多与OSGI不兼容的第三方库也会产生问题,这会花费大量时间进行调试。还查看了Spring Boot、JPF等,但不太感兴趣。所以考虑使用非常小的自制插件框架 我不知道该怎么做,从哪里

我正在开发一个应用程序,我需要构建一个非常小且最小的插件容器

以下是我努力实现的目标

  • 应用程序被分成更小的插件,这些插件打包成JAR
  • 插件容器应该得到它们并加载所有JAR
  • 每个插件都不应该干扰其他插件,应该与依赖的库一起独立运行。基本上所有插件都应该在运行时隔离
  • 我尝试使用OSGI容器,但它增加了高度复杂性。另外,许多与OSGI不兼容的第三方库也会产生问题,这会花费大量时间进行调试。还查看了Spring Boot、JPF等,但不太感兴趣。所以考虑使用非常小的自制插件框架

    我不知道该怎么做,从哪里开始。请任何人都可以告诉我正确的方向,我可以在那里得到详细的信息


    先谢谢你

    如果你真的想要简约的东西,看看Java的类。
    这里有一个问题。

    应用程序是否需要UI?它将是一个web应用程序?或者它将是一种守护进程?听起来像是你可以通过Docker+Kubernetes之类的东西实现的。不确定您到底想做什么,尽管tbh。应用程序不需要UI。但是所有插件都应该能够相互交互。容器应该有一个小的服务注册中心。如果你的目标是让插件开发者的一切都尽可能的简单(但不要介意使用一个更复杂的框架作为你的插件平台),OSGI是一个不错的选择。例如,几年前,我将ApacheKaraf用于一个模块化的web应用程序——插件开发人员所要做的就是实现一些服务接口,并将带有(非osgi)库的jar放在一个文件夹中,Karaf将jar作为osgi包自动运行。