| 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
mvn clean install -Pminimal
mvn clean install -Dmodule.redis.enabled=true
mvn clean install -Dmodule.kafka.enabled=true
mvn clean install -Pfull-stack
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 {
}
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}