lm-cli est un outil en ligne de commande puissant pour générer automatiquement des composants Spring Boot suivant les meilleures pratiques et l'architecture en couches.
🎯 Gagnez du temps : Générez des entités, services, repositories, DTOs, mappers et contrôleurs REST en une seule commande !
- 🏗️ Génération de code : Entités, repositories, services, contrôleurs REST
- 📦 Architecture en couches : Respecte les principes SOLID et Clean Architecture
- 🔄 Mappers automatiques : Conversion entité ↔ DTO avec MapStruct
- 🔒 Sécurité : Configuration JWT, Spring Security, authentification
- 📝 Documentation : Swagger/OpenAPI intégré
- 🗃️ Base de données : Support Liquibase pour les migrations
- ⚡ Autocomplétion : Support Bash, Zsh et PowerShell
- 🌐 Multi-plateforme : Linux, macOS, Windows (WSL/PowerShell)
curl -fsSL https://raw.githubusercontent.com/lmlouis/lm-cli/main/install.sh | bashirm https://raw.githubusercontent.com/lmlouis/lm-cli/main/install.ps1 | iexAprès l'installation, redémarrez votre terminal ou exécutez :
source ~/.bashrc # Bash
source ~/.zshrc # Zsh
. $PROFILE # PowerShell📖 Guide d'installation complet
lm create dto User --recordlm create domain Product --entitylm create service Order --mapper --implementlm create rest Customer📚 Référence complète des commandes
- Java 17 ou supérieur
- Maven ou Gradle
- Un projet Spring Boot existant (avec
pom.xmloubuild.gradle) - Bash 4.0+, Zsh 5.0+ ou PowerShell 5.1+
| Documentation | Description |
|---|---|
| 📖 Installation | Guide d'installation détaillé pour tous les OS |
| ⚡ Autocomplétion | Configuration de l'autocomplétion intelligente |
| 📚 Commandes | Référence complète de toutes les commandes |
| 🔄 Cycle de vie | Installation, mise à jour et désinstallation |
lm create config <name> # Configuration (Database, Security, etc.)
lm create exception <name> # Exception personnalisée
lm create constant <name> # Classe de constantes
lm create security <name> # Configuration de sécurité
lm create dto <name> # Data Transfer Object
lm create mapper <name> # Mapper entité ↔ DTO
lm create domain <name> # Entité JPA ou Enum
lm create repository <name> # Repository Spring Data JPA
lm create service <name> # Service métier
lm create rest <name> # Contrôleur REST
lm create changelog <name> # Changelog Liquibase
lm create application <profile> # Fichier application.yml
lm create pagination # Système de pagination
lm create filter # Système de filtragelm version # Afficher la version
lm update # Mettre à jour lm-cli
lm install <version> # Installer une version spécifique
lm uninstall # Désinstaller lm-cli
lm --help # Afficher l'aide# 1. Créer l'entité
lm create domain Product --entity
# 2. Créer le DTO
lm create dto Product --record
# 3. Créer le mapper
lm create mapper Product --init
# 4. Créer le repository
lm create repository Product
# 5. Créer le service
lm create service Product --mapper --implement
# 6. Créer le contrôleur REST
lm create rest Product# 1. Configuration de sécurité
lm create security JwtUtil
# 2. Contrôleur d'authentification
lm create rest Auth# Changelog initial
lm create changelog initial --init
# Ajouter des données de test
lm create changelog seed_data --datasrc/main/java/com/example/demo/
├── config/ # Configurations
│ ├── DatabaseConfig.java
│ ├── SecurityConfig.java
│ └── SwaggerConfig.java
├── domain/ # Entités JPA
│ ├── Product.java
│ └── User.java
├── dto/ # Data Transfer Objects
│ ├── ProductDTO.java
│ └── UserDTO.java
├── mapper/ # Mappers
│ ├── ProductMapper.java
│ └── UserMapper.java
├── repository/ # Repositories
│ ├── ProductRepository.java
│ └── UserRepository.java
├── service/ # Services
│ ├── ProductService.java
│ └── UserService.java
├── web/rest/ # Contrôleurs REST
│ ├── ProductResource.java
│ └── UserResource.java
└── exception/ # Exceptions personnalisées
├── NotFoundException.java
└── BadRequestException.java
lm-cli détecte automatiquement :
- ✅ Le package principal de votre application
- ✅ La structure de votre projet (Maven/Gradle)
- ✅ Les dépendances existantes
- ✅ La version de Java utilisée
Pour spécifier un package personnalisé :
lm create service Product --package com.mycompany.customLes contributions sont les bienvenues ! Pour contribuer :
- Fork le projet
- Créez une branche (
git checkout -b feature/nouvelle-fonctionnalite) - Committez vos changements (
git commit -m 'Ajout nouvelle fonctionnalité') - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite) - Ouvrez une Pull Request
Vous avez trouvé un bug ? Créez une issue
Consultez le CHANGELOG.md pour voir l'historique des versions.
Nouveautés :
- ✨ Support PowerShell pour Windows
- ⚡ Autocomplétion intelligente améliorée
- 🐛 Corrections de bugs divers
- 📚 Documentation enrichie
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Louis LM
- GitHub: @lmlouis
- Email: louis-martin.wora@aninf.ga
Si ce projet vous est utile, n'hésitez pas à lui donner une ⭐ sur GitHub !