Question

Nous avons tas de classes qui autogénérées sont pour la plupart des talons, des squelettes Axis2 etc. Pour certains fichiers WSDL complexes, Axis2 génère une TONNE de java-haricots, etc. talons et je suis sûr qu'il ya d'autres cas aussi lorsque la génération automatique est utilisé.

Pour l'instant, nous traitons ces autres premiers éléments de classe de notre base de code et ils sont stockés dans les packages.

Cependant, quand faire refactoring, etc opérations de nettoyage, il devient difficile d'éliminer les avertissements qui viennent de ces classes générées automatiquement. Par exemple, si je suis en train de nettoyer le code de manière à utiliser les génériques Java1.5, il n'y a pas de bonne façon de savoir combien de ces classes incriminées sont les nôtres vs être généré automatiquement.

Dois-je être la séparation de ces parties générées automatiquement dans un paquet à autre? Comment les gars Entreposez-vous ces objets dans le référentiel?

EDIT: Je vois « générer au cours du processus de construction » dans un bon nombre de réponses ci-dessous. Alors que je vois les avantages de le faire, je ne vois pas très bien comment je peux sortir d'un checkin dépôt.

Mon code a compiler les dépendances de temps sur certaines de ces classes et pour moi, une construction au cours du développement est un « ctrl-l » éclipse. Nous utilisons des fourmis-scripts pour générer la compilation, exécuter des tests et générer des produits à livrer.

Était-ce utile?

La solution

Vous pouvez conserver les mêmes paquets, mais utiliser un dossier source différente (quelque chose comme-src généré), ce qui est ce que nous faisons. Je suis en fait sur la clôture de l'idée de sauver le code généré dans le référentiel de code source. Nous le faisons à titre de commodité pour d'autres développeurs sur le projet, mais il est généralement judicieux de régénérer le code source dans le cadre du processus de construction. Si ce code généré est peu susceptible de changer, puis à l'aide d'un projet distinct et la génération d'un pot peut être plus pratique.

Autres conseils

Résumé des meilleures pratiques:

  • Faites répéter
    • Créer code généré dans le cadre d'un processus de construction.
    • Ne pas vérifier le code généré dans le contrôle source. (Ne cochez dans la source. Par exemple WSDL)
  • Gardez le code généré distinct du code managé
    • Utilisez un dossier source différente pour la sortie générée.
    • Fournir un jar séparé de telle sorte que le code généré devient une dépendance.
    • Considérons l'aide d'un projet IDE différent (ou module maven)

Je mets ces fichiers dans un projet de leur propre. De cette façon, je peux ajouter le fichier de construction, tous les patches dont j'ai besoin, etc. dans un seul endroit et désactiver tous les avertissements pour le code généré.

Si vous les dans votre système de vérification de contrôle de code source, ne pas . Faites-les réimprègnent générés par une étape de construction. Si elles sont générées à partir d'un WSDL, vérifiez dans le WSDL, pas le code résultant.

Je recommande d'avoir cette étape de construction générer un .jar complètement séparé pour le code généré, puis de supprimer les fichiers source, juste pour le rendre aussi improbable que possible que les mainteneurs essaieront de modifier à la main la source générée automatiquement.

De cette façon, vos activités de refactoring verront le code généré automatiquement comme comme une bibliothèque tiers au lieu de la source à manipuler.

Pour chaque ensemble d'artefacts générés, créez un nouveau projet qui effectue la génération, regroupe ensuite les artefacts vers le haut dans JAR et la source des fichiers ZIP, puis les référencer à partir de votre application. Maintient les belles choses et séparées, et souligne le fait que les artefacts générés ne sont pas pour changer par l'EDI.

avec Maven et axistools-maven-plugin, les sources générées sont des lieux dans un dossier autre source dans le répertoire « cible ». ce répertoire cible est l'endroit où Maven génère tous les fichiers et d'autres choses, il peut être nettoyé.
Ceci est très conviniened, car les fichiers générés apparaît également dans un dossier autre source au sein de l'IDE.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top