2010-09-23 6 views
0

Je cherche une bibliothèque qui simplifierait le processus de copie parties du code d'un projet à un autre. La copie de certaines parties du code appartenant au même fichier n'est pas requise. Je suis conscient qu'il existe des générateurs de code qui me permettraient de construire le code généré à partir de rien par programmation, mais je cherche une bibliothèque qui me permettrait de générer du code déjà codé à la main ailleurs.Java: bibliothèque code source simple, re-création/copie

Je préférerais un outil d'annotation, qui me permettrait de « marquer » les classes/fichiers/packages je voudrais copier. Quelque chose comme ceci:

@CopyCode 
class Foo { 
    ... 
} 

File destinationDirectory; 
... 
new CodeCopier().copyAllAnnotatedFiles(destinationDirectory); 

ou au moins quelque chose comme:

Package package; 
... 
new CodeCopier().copyPackage(package, destinationDirectory); 

Comportement attendu: Le code source du fichier qui contient le code « étiqueté » doit être copié dans le répertoire de destination (qui est un autre projet Java), avec toute la structure de répertoire/paquet maintenue.

Y at-il une bibliothèque qui serait utile ici?

Sinon, quel est votre avis, comment dois-je mettre en œuvre mon propre « copieur de code » et ce que les bibliothèques serait utile?

Répondre

5

Si vous souhaitez uniquement copier les fichiers, ne le faites pas. Déplacez-les dans une bibliothèque et utilisez cette bibliothèque avec différents projets.

Si vous devez modifier le code lors de la copie, je vous recommande FMPP. Ici, vous pouvez définir un modèle à partir de certaines propriétés personnalisées et accéder aux valeurs du modèle pour les insérer dans les modèles que vous souhaitez copier. J'utilise cette technique pour créer de nouveaux projets qui ont la même structure et insérer le nom du projet et d'autres propriétés individuelles dans le code généré.

+1

+1 - 100% de la cible. J'ajouterais que si vous ne modifiez que légèrement le code, c'est-à-dire que vous modifiez des valeurs de variables, etc., je vous recommande de créer une bibliothèque et d'extraire le code pour permettre à ces variables d'être définies ou ajoutées aux appels. Refactoring de Martin Fowler est une bonne référence pour tout cela. – aperkins

+0

Merci, je vais voir ce que FMPP peut faire ici. Je sais qu'une bibliothèque serait meilleure en général, mais les exigences sont claires pour ma tâche, donc c'est le code source. – eold

+0

Ne vous répétez pas. http://en.wikipedia.org/wiki/Don%27t_repeat_yourself – RonU

Questions connexes