2010-01-15 3 views
2

Quelle est la façon la plus appropriée pour accomplir toutes les opérations suivantes:Java, Eclipse, Ant, JUnit, Hudson, SVN, bibliothèques natives; peuvent-ils tous coexister?

  • Créer un projet dans Eclipse
  • Avec un Apache Ant buildfile
  • Ce Hudson (ou un autre système CI plus recommandé?)
  • Et la prise en charge des tests JUnit qui sont exécutés par Ant/Hudson et Eclipse
  • Et vérifiez la structure de dossier appropriée dans SVN afin que les futurs développeurs puissent répliquer la génération, et Hudson peut récupérer automatiquement à partir de SVN et exécuter le fichier Ant pour construire/tester/déployer le projet
  • Et le projet a des bibliothèques natives, si cela fait une différence (j'ai déjà écrit une tâche Ant qui peut télécharger et décompresser les fichiers de bibliothèque appropriés en fonction de l'OS)

J'ai déjà mon projet avec quelques fichiers source et un fichier Ant, mais j'ai eu du mal à l'intégrer avec Eclipse de manière organisée, donc j'aimerais vraiment commencez à partir d'un nouveau projet Eclipse, configurez-le correctement, puis copiez mon fichier Ant et mes fichiers source morceau par morceau dans le projet de la manière la plus compatible Eclipse.

Je continuerai à jouer avec tout pour essayer de le faire fonctionner comme je l'aime. Mais si vous avez de l'expérience avec ce genre de choses, peut-être sur votre lieu de travail, donnez autant d'informations que possible.

Mon objectif principal ici est de l'apprendre une fois et de l'utiliser dans mes futurs projets. Pour l'instant, je développe une application client-serveur composée d'une interface JOGL (utilisant des fichiers JNLP) et d'une application serveur sans surveillance. Jusqu'à présent, je l'ai fait à la main: écrire et construire dans Eclipse, faire glisser l'applet jar dans mon client FTP, SSH le jar serveur et le redémarrer à la main, et tous sans processus de test. J'espère qu'à la fin, le processus de construction ressemblera à ceci: tester localement sur ma machine avec une copie des bibliothèques natives; valider le code change en SVN; Hudson svn update s, utilise le fichier build Ant pour compiler et exécuter tous les tests JUnit; Si tous les tests réussissent, il copie le serveur jar sur mon serveur dédié et redémarre l'instance du serveur en cours d'exécution, puis copie le fichier client sur mon serveur Web.

+0

Similaire mais pas tout à fait du même: http://stackoverflow.com/questions/161222/how-do-i-use-continuous-integration -with-an-eclipse-project – Ricket

Répondre

2

Quand je commence un nouveau projet, je prends généralement les étapes suivantes:

  1. Créer un nouveau projet Java dans Eclipse, en utilisant l'assistant de projet Java et optant pour conserver les fichiers source et de classe dans des répertoires distincts (» src » et « classe »)
  2. Mettre en place le projet dans Eclipse avec la structure de package que vous souhaitez
  3. Créer un nouveau référentiel (ou un dossier dans votre référentiel) pour le projet, avec la normale/tronc// branches// tags/set
  4. En utilisant votre client SVN, importez le co ntents du dossier de projet Eclipse fait pour le projet (au niveau où les répertoires 'src' et 'class' sont) dans le tronc du dépôt
  5. Confirmer que tout est correctement dans Subversion (vérifier le tronc à un nouvel emplacement)
  6. Utilisation d'Eclipse, supprimer le projet (et les fichiers sur le disque)
  7. Créer un nouveau projet en utilisant les « Commander des projets de SVN » assistant, en utilisant le tronc du référentiel
  8. Créer votre script Ant, assurez-vous la projet construit correctement et ajouter le script Ant au référentiel

Maintenant, de Hudson:

  1. Créer un nouvel emploi et définir l'URL de Subversion à la racine du dépôt
  2. Ajouter un jeu de construction qui utilisera Ant (je l'ai toujours eu à installer ma propre version de Ant et assurez-vous qu'il est correctement configuré pour avoir ce travail) et appellera le script Ant vous
  3. Utilisez « construire maintenant » pour voir si le travail va construire correctement

vous pouvez appeler vos tests JUnit Ant dans la build script (compilez-les d'abord avec la tâche javac, puis exécutez-les avec e junit tâche). Hudson suivra les résultats des tests si vous le demandez.

Vous pouvez utiliser une étape de génération de script shell pour copier le fichier jar du serveur là où vous en avez besoin et redémarrer l'instance du serveur. Comme dit Mnementh, on dirait que vous avez trié les bibliothèques natives ...

1

Si vous n'êtes pas lié à l'utilisation de la fourmi et que vous êtes prêt à utiliser Maven, il vous suffit de configurer Maven avec le Eclipse plugin qui génère les projets Eclipse pour vous. Hudson sait déjà comment construire des projets Maven, donc cela est pris en charge.

Tant que vous pouvez tirer vos projets dans Eclipse, alors il sera capable d'exécuter les tests unitaires, et hudson peut également utiliser le support Maven mentionné précédemment pour exécuter les tests unitaires.

Si vous utilisez Maven, alors vous voudrez suivre les directives sur la façon de créer un projet, here est un bon point de départ.

Espérons que cela aide.

+0

Désolé, je ne veux absolument pas utiliser Maven. Je l'ai bien essayé, et c'est à mon avis très compliqué et pas assez flexible. Puis, en lisant divers articles de blog et autres, je vois que beaucoup d'autres personnes partagent les mêmes sentiments. J'imite un peu la structure des dossiers de Maven dans mon projet Ant, mais je ne veux rien avoir à faire avec Maven. Espérons que cette réponse puisse aider d'autres personnes qui s'intéressent à Maven! – Ricket

+1

Vous imitez maven et réussi à faire tout ce que maven fait avec ant/anttasks. Je fais toutes ces exigences avec maven et ses mojos. Il me semble que vous avez eu un mauvais départ avec Maven et maintenant la seule chose qui vous empêche d'accomplir ces exigences sont ces sentiments envers Maven ... – YuppieNetworking

1

Dans notre société, nous utilisons actuellement Eclipse, Java, Ant, SVN, Junit et Hudson. C'est tout ce que vous avez mentionné, sauf les bibliothèques natives. Si vous avez dit que votre ant-buildscript fonctionne déjà avec les bibliothèques natives, ce problème semble également résolu.Pour l'intégrer correctement dans Eclipse vous pouvez le faire de deux façons: Utiliser Ant aussi depuis Eclipse (a des inconvénients) ou le développeur doit installer correctement la bibliothèque native pour sa machine, afin qu'Eclipse puisse compiler sans problème et pour une intégration continue sera téléchargé par Ant.