La génération de code Java
Quels sont les meilleurs cadres pour la génération de code java?
Je ne suis pas à la recherche d'un DB ou de l'application de l'outil de production. J'ai un squelette d'une classe, et j'ai besoin de générer avec les différentes parties dynamiques pour différents cas d'utilisation. La majorité de la classe est identique, donc je veux exécuter le code qui génère les différentes saveurs de la classe.
Quelqu'un connait un bon cadre?
Grâce.
- Que devez-vous faire?
- c2.com/cgi/wiki?CodeGenerationIsaDesignSmell
- Êtes-vous essayer de faire quelque chose de spécifique, ou est-ce juste une façon de récolter une autre liste de cadres?
- Le lien que vous fournissez semble être contre la génération de code (en raison de son titre), mais est en fait une sorte de discussion, où le nombre d'arguments contre il est à peu près les mêmes que ceux en faveur
- OMI, le plus gros problème avec APT est l'absence d'un bon moyen de générer du code.
- Je suis à la recherche d'un modèle basé sur l'outil de production.
- Si le code que vous souhaitez générer peut être basé sur une classe existante, JavaForger peut-être de l'aide. Il traite les classes existantes et remplit les modèles avec l'analyse des données. github.com/daanvdh/JavaForger
Vous devez vous connecter pour publier un commentaire.
cglib est un puissant, de haute performance et de la qualité de la Génération de Code de la Bibliothèque
jet velocity/sont à l'aide de modèles.Si vous êtes à la recherche pour générer une application entière découvrez JBoss Seam cadre.
Noter que ces utilitaires sont principalement pour kickstarting votre projet, par la génération de code réutilisable.
http://www.andromda.org
AndroMDA (prononcé: andromède) est un open source génération de code-cadre qui suit le Model Driven Architecture (MDA) de paradigme. Il prend modèle(s) de CAS-outil(s) et génère totale capacité de déploiement des applications et d'autres composants.
Je l'ai utilisé et il est très puissant. Il ne génère pas seulement des fichiers de configuration et de code à partir d'UML, quitte à ce que le développeur seule la mise en œuvre des méthodes d'affaires à développer, mais aussi à maintenir l'générer du code grâce à l'utilisation de bien-connu dessing modèles.
[SQL2JAVA] est un outil formidable. Il génère Tous les [CRUD] code pour le Schéma de Base de données. C'est le regroupement de connexion n'est pas assez bon,vous pouvez personnaliser le Gestionnaire de classe pour maintenir votre piscine propre.
Autre que cela, si vous êtes intéressé par Développement dirigé par les modèles (MDD),vous pouvez utiliser [AndroMDA] ou [de Borland Ensemble] , l'un des meilleurs [eclipse] en fonction de la outil de.
Si vous êtes intéressés à aller un peu plus loin avec la génération de code et d'entrer dans le modèle de développement de logiciels par vous devriez jeter un oeil à [openArchitectureWare].
D'autres outils de développement java que support de génération de code sont [Lombok] et [Cuillère]. Projet de Lombok offre les fonctionnalités telles que la génération automatique de la valeur par défaut getter/setter, automatique de gestion des ressources (à l'aide de @Nettoyage de l'annotation) et l'annotation piloté par la gestion des exceptions.
[cglib],[Vitesse modèle] et [AppFuse] sont également très bien.
Essayer Xtext (http://www.eclipse.org/Xtext/). Vous utilisez XText pour définir une connexion DSL, XText sera gernerate une Éclipse de l'Éditeur l'appui de cette LISTE. Ensuite, vous pouvez utiliser XPand de définir des modèles pour générer tous les types de texte (par exemple java source code).
SQL2Java génère de la Base de données CRUD code de la DB schéma.
J'ai utilisé le Druide Gestionnaire de Base de données: http://druid.sourceforge.net/
Il commence à partir de db, ce qui peut être à l'ingénierie inverse, et il peut générer de la documentation, sql, classes et les fichiers basés sur des tables et des champs.
Le modèle de langage utilisé est la vitesse.
Le logiciel extensible par l'intermédiaire d'un système de plugin.
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é conjointement avec votre IDE (donc, il n'est pas cadre, mais une application autonome). Avec elle, vous pouvez générer du code réutilisable, mais aussi un projet complet.
AtomWeaver implémente ABSE (à Base d'Atom Génie Logiciel), qui est une forme de model-driven développement logiciel (qui n'a rien à voir avec UML ou MDA).
Il s'agit essentiellement d'un modèle basé sur le système.
Un autre vote pour la Vitesse de moteur de template. Je l'ai utilisé dans plusieurs projets, pour générer EJB2.1 du code réutilisable, objets de base de données, etc. Fonctionne très bien et est assez facile à apprendre.
Je présume que ASM est le plus populaire bytecode Java génération de bibliothèque. C'est le plus bas niveau du bytecode à la bibliothèque il y a, mais il y a d'autres code de niveau supérieur des bibliothèques de génération qui sont construites sur les ASM, bien que l'utilisation de l'ASM directement n'est pas trop dur non plus (un des avantages de l'utilisation directe, c'est que l'ASM POT de taille est très petite). Certains de l'ASM utilisateurs sont mentionnés à http://asm.ow2.org/users.html
EDIT:
Pour la mise à jour de la question, qui mentionne le cas d'utilisation ("j'ai un squelette d'une classe, et j'ai besoin de générer avec les différentes parties dynamiques pour différents cas d'utilisation."), ma réponse est à améliorer la conception, de sorte que toute la duplication de code est supprimé et pas de génération de code est nécessaire. La lecture sur les différents modèles de conception peuvent donner quelques idées sur la façon de le faire. Pour une réponse spécifique, vous aurez besoin de montrer un peu de code et d'être plus précis sur vos besoins.