Quels sont les principaux frameworks pour la génération de code Java?
Je ne cherche pas d'outil de génération de base de données ou d'application. J'ai un squelette de classe et je dois le générer avec différentes parties dynamiques pour différents cas d'utilisation. La majorité de la classe est identique, par conséquent, je veux exécuter un code qui génère différentes variantes de la classe.
Quelqu'un connaît un bon cadre?
Merci.
cglib est une bibliothèque de génération de code puissante, performante et de qualité
jet/vitesse utilise des modèles.
Si vous souhaitez générer une application complète, consultez JBoss Seam framework.
Notez que ces utilitaires servent principalement à relancer votre projet en générant du code passe-partout.
AndroMDA (prononcé: andromeda) est un framework de génération de code open source qui suit le paradigme MDA (Model Driven Architecture). Il prend modèle (s) de CASE-tool (s) et génère des applications entièrement déployables et d’autres composants.
Je l'ai utilisé et il est très puissant. Il génère non seulement des fichiers de configuration et du code à partir d'UML, ne laissant au développeur que l'implémentation des méthodes métier à développer, mais maintient également le code généré à l'aide de modèles de dessicage connus.
Essayez Xtext ( http://www.Eclipse.org/Xtext/ ). Vous utilisez XText pour définir un DSL, XText gernera un éditeur Eclipse prenant en charge ce DSL. Ensuite, vous pouvez utiliser XP et définir des modèles pour générer tout type de texte (par exemple, un code source Java).
[ SQL2Java ] est un excellent outil. Il génère tout le code [CRUD] pour le schéma de base de données. Le regroupement de connexions ne suffit pas, vous pouvez personnaliser sa classe Manager pour gérer votre propre pool.
Sinon, si vous êtes intéressé par le développement dirigé par les modèles (MDD), vous pouvez utiliser [ AndroMDA ] ou [ Borland's Together ], l’un des meilleurs [ Eclipse ] outil basé là-bas.
Si vous souhaitez aller un peu plus loin avec la génération de code et le développement de logiciels pilotés par les modèles, vous devriez jeter un coup d'œil à [ openArchitectureWare ].
Les autres outils de développement Java prenant en charge la génération de code sont [ Lombok ] et [ Spoon ]. Project Lombok offre des fonctionnalités telles que la génération automatique des méthodes de lecture/définition par défaut, la gestion automatique des ressources (à l'aide de l'annotation @Cleanup) et la gestion des exceptions gérées par les annotations.
Les modèles [ cglib ], [ Velocity template ] et [ AppFuse ] sont également intéressants.
SQL2Java génère le code CRUD de la base de données à partir du schéma de base de données.
J'ai utilisé Druid Database Manager: http://druid.sourceforge.net/
Il commence à partir de la base de données, qui peut être inversée, et peut générer de la documentation, SQL, des classes et des fichiers basés sur des tables et des champs.
Le langage de template utilisé est la vélocité.
Le logiciel est extensible via un système de plugin.
Je suppose que ASM est la bibliothèque de génération de bytecodes Java la plus répandue. C'est la bibliothèque de code-octets la plus basse qui existe, mais il existe d'autres bibliothèques de génération de code de niveau supérieur construites sur ASM, bien que l'utilisation directe d'ASM ne soit pas trop difficile non plus (l'un des avantages de l'utilisation directe est que la taille du JAR d'ASM est très réduite. petit). Certains utilisateurs d’ASM sont mentionnés à http://asm.ow2.org/users.html
EDIT:
Pour la question mise à jour, qui mentionne le cas d'utilisation ("J'ai le squelette d'une classe et je dois le générer avec différentes parties dynamiques pour différents cas d'utilisation."), Ma réponse est: améliorer la conception de sorte que toute duplication de code est supprimée et aucune génération de code n’est nécessaire. La lecture de différents modèles de conception peut donner quelques idées sur la façon de procéder. Pour une réponse plus spécifique, vous devrez montrer du code et être plus précis quant à vos besoins.
Un autre vote pour le moteur de template Velocity. Je l'ai utilisé dans plusieurs projets, pour générer du code passe-partout EJB2.1, des objets de base de données, etc. Fonctionne très bien et est assez facile à apprendre.
AtomWeaver http://www.atomweaver.com est maintenant en version bêta publique. C'est une génération de code IDE qui peut être utilisée avec votre IDE actuel _ (donc, ce n'est pas un framework, mais une application autonome). Avec lui, vous pouvez générer du code standard, mais également un projet complet.
AtomWeaver implémente ABSE (génie logiciel basé sur Atom), qui est une forme de développement logiciel piloté par les modèles (n’a rien à voir avec UML ou MDA).
C'est essentiellement un système basé sur des modèles.