spring-maven-modular

star 6

Maven Modular Architecture with profiles for optional components. Enable/disable modules like Redis, Kafka, RabbitMQ dynamically.

mduongvandinh By mduongvandinh schedule Updated 12/26/2025

name: spring-maven-modular version: 1.0.0 description: | Maven Modular Architecture with profiles for optional components. Enable/disable modules like Redis, Kafka, RabbitMQ dynamically.

triggers: - "maven" - "module" - "profile" - "dependency" - "optional"

Maven Modular Architecture

Module Flags

Module Default Property
PostgreSQL ON module.postgresql.enabled
Redis OFF module.redis.enabled
Kafka OFF module.kafka.enabled
RabbitMQ OFF module.rabbitmq.enabled
OAuth2 OFF module.oauth2.enabled

Usage

# Minimal (PostgreSQL only)
mvn clean install -Pminimal

# With Redis
mvn clean install -Dmodule.redis.enabled=true

# With Kafka
mvn clean install -Dmodule.kafka.enabled=true

# Full stack
mvn clean install -Pfull-stack

# Custom combination
mvn clean install -Dmodule.redis.enabled=true -Dmodule.kafka.enabled=true

Profiles

Minimal Profile

  • PostgreSQL (always)
  • JWT Authentication

Full Stack Profile

  • PostgreSQL
  • Redis
  • Kafka
  • OAuth2

Spring Configuration

Use @ConditionalOnModuleEnabled to conditionally load beans:

@Configuration
@ConditionalOnModuleEnabled("redis")
public class RedisConfig {
    // Only loaded when modules.redis.enabled=true
}

application.yml

modules:
  postgresql:
    enabled: true
  redis:
    enabled: ${MODULE_REDIS_ENABLED:false}
  kafka:
    enabled: ${MODULE_KAFKA_ENABLED:false}
  rabbitmq:
    enabled: ${MODULE_RABBITMQ_ENABLED:false}
  oauth2:
    enabled: ${MODULE_OAUTH2_ENABLED:false}
Install via CLI
npx skills add https://github.com/mduongvandinh/skills-java-spring --skill spring-maven-modular
Repository Details
star Stars 6
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator
mduongvandinh
mduongvandinh Explore all skills →