Skip to content

Centralized Management for Plugin Modules #14048

Description

@KomachiSion

Is your feature request related to a problem? Please describe.
With the migration of more plugins to the main repository, the current approach of directly depending on plugin implementations in the nacos-server pom has limitations. As more plugins are included, the server’s deployment package size increases, and users lose the ability to remove unwanted plugins. The community wants to enable fast plug-and-play capabilities for plugins.

Describe the solution you'd like

  1. Migrate all plugin implementations to the plugin-default-impl module. Currently, only default authentication and rate-limiting plugins are present; others like datasource plugins need migration.
  2. Refactor all modules and their poms to remove direct dependencies on plugin implementations.
  3. Update the distribution module so that during the nacos-server build process, all plugin-default-impl plugins are compiled and their jars are placed into the appropriate plugin directory.
  4. For source debugging, consider a solution (such as a dev profile or an alternative approach) to load plugins during development, since removing direct dependencies from the pom could affect IDE or mvn-based debug startup.

Describe alternatives you've considered

  • Keep depending on each plugin in pom.xml, but this limits pluggability and flexibility for users.

Additional context

  • This issue continues from the migration described in the previous issue. After centralizing plugin management, deployment size can be reduced and plugin flexibility improved.
  • During debugging, developers might need a convenient way to load plugins without modifying pom dependencies—further discussion needed.

随着主仓库插件迁移量的增加,目前的nacos-server构建及插件依赖方式存在局限性,不利于插件的灵活插拔。建议对所有插件模块进行统一管理,实现插件的独立发布与按需加载。本Issue需关联上一个插件迁移的Issue。

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions