2010-12-07 4 views
1

Salut les gars. J'ai donc dans les projets Hudson 2 Java/Maven/SVN. Appelons-les A et B. B dépend de A. Je les commets parfois simultanément. Hudson est assez intelligent pour mettre en file d'attente la construction de B jusqu'à ce que la construction de A soit terminée. Cependant, quand il construit B il utilise une construction plus ancienne (pot). Parfois, plusieurs builds/jours. Alors B échoue à cause de symboles inconnus (nouvelles classes/méthodes en A). J'ai essayé d'effacer l'espace de travail et de commander une construction manuellement. Même chose. La construction plus ancienne est utilisée. Que puis-je faire pour forcer Hudson à utiliser les derniers pots construits par lui-même. Je n'ai pas encore essayé de supprimer toutes les versions précédentes, mais cela semble une solution extrême. J'espère que ce ne sera pas nécessaire.Hudson build utilise des vieux pots

+0

Comment avez-vous configuré Hudson pour trouver les pots? –

+0

Je n'ai fait aucune configuration spéciale. Je devine que la dépendance a été tirée du fichier POM si A apparaît comme un projet en amont dans B. –

Répondre

1

Si vous avez vos objets dépendants comme des instantanés (que vous devriez) considérer fixant l'objectif Maven à

clean deploy -U 

Cette forces maven de mettre à jour tous les instantanés.

+0

Cela fonctionne à merveille! Merci! J'aurais dû y penser. J'étais tellement occupée à penser que c'était un problème d'Hudson alors que c'était en fait une chose Maven. –

+0

:) très heureux d'aider! –

+0

Juste un FYI: J'ai découvert (à la dure) que les artefacts d'instantané expirent après un jour. Si vous avez deux validations pour un jour, voir la solution ci-dessus. Si vous construisez hors ligne, assurez-vous que les artefacts d'instantané ne datent pas d'un jour. Vous pouvez tromper maven buy en changeant l'horodatage des artefacts (je pense que c'est la commande 'touch' sous Unix). –

1

Si vous utilisez maven pour vos builds, utilisez-vous les cibles de déploiement ou d'installation? Si c'est le cas, vous devriez être capable de regarder les journaux et de voir que le fichier jar du référentiel est en cours de mise à jour. Si elle est à jour, alors votre configuration de pom.xml est probablement incorrecte.

+0

Les deux projets utilisent "clean deploy" pour la construction et je peux confirmer que le jar pour A a été correctement téléchargé. Je doute qu'il y ait un problème de pom dans B parce que si j'attends 1-2 jours et que je lui demande de reconstruire (sans aucun engagement ou changement entre-temps) ça va se construire correctement. –

Questions connexes