J'ai récemment ajouté la capacité de création de snapshots Maven à un projet, configuré pour utiliser une version d'horodatage unique sur l'artefact déployé. Mais il y a une certaine confusion quant à savoir si c'est la bonne chose à faire (les instantanés en question sont déployés dans l'un des repos publics, pas seulement dans une entité comme une entreprise): certains disent que cela cause des problèmes d'utilisation des instantanés. Donc, étant donné la quantité de Maven basée sur les conventions, et suivant les meilleures pratiques perçues, j'espère qu'il y a quelques directives quant à l'option à choisir. (NOTE: J'ai légèrement modifié le titre - Je suis particulièrement intéressé par les avantages (ou l'absence) d'inclure l'horodatage unique, via l'option de déploiement, pour les versions d'instantanés publics, et non pas si utiliser des horodatages s'ils sont inclus, bien que ce soit évidemment une question connexe)Meilleures pratiques Maven: y compris les horodatages pour les versions instantanées ou non?
Répondre
Le but d'un instantané est de laisser quelqu'un utiliser la dernière version du code. Pourquoi voudriez-vous utiliser un instantané de cinq versions? Avec cela à l'esprit, qu'est-ce que les horodateurs du nom d'artefact vous achètent? J'ai utilisé Maven depuis environ 5 ans maintenant. Je n'ai jamais vu un instantané avec un horodatage dans le nom.
En règle générale, vous devriez toujours construire avec la dépendance -SNAPSHOT. Cependant, vous devriez éviter de libérer votre produit s'il inclut des dépendances -SNAPSHOT. Si vous utilisez le Maven Release Plug-in pour automatiser votre version, elle vérifiera que vous n'utilisez pas les plug-ins de version ou les dépendances.
Mais ce n'est pas toujours possible. Dans les cas où j'ai besoin de publier quelque chose basé sur une construction de snapshot, c'est quand j'utilise le numéro d'horodatage/build explicite plutôt que le schéma de nommage de la version -SNAPSHOT. Vous pouvez automatiser cela en utilisant le Versions Maven Plugin. Il fournit des objectifs pour verrouiller et déverrouiller des versions d'instantanés dans votre POM.
Merci. Dans mon cas, je publie des instantanés, pas tellement en les utilisant (au moins pour les besoins de cette question). Mais cela aide: sans horodatage dans repo, vous ne pouvez pas déclarer les dépendances qui les utiliseraient. Donc, ce serait une raison pour inclure des horodatages. – StaxMan
- 1. Meilleures pratiques Maven
- 2. Meilleures pratiques pour les comptes non enregistrables
- 3. Meilleures pratiques - stocker les informations d'identification Twitter ou non?
- 4. Nouvelles images instantanées Maven pour les artefacts déjà publiés
- 5. Meilleures pratiques pour les traites d'enregistrement automatique?
- 6. Silverlight (3) les meilleures pratiques
- 7. Meilleures pratiques pour les références JavaScript IntelliSense
- 8. CSS meilleures pratiques pour les portlets
- 9. Meilleures pratiques pour les chaînes de connexion
- 10. Les meilleures pratiques pour les requêtes et de service WCF
- 11. dépendance Plugin les meilleures pratiques
- 12. Quelles sont les meilleures pratiques pour gérer plusieurs versions d'un projet?
- 13. Meilleures pratiques pour les singletons et les notifications sur l'iPhone
- 14. Conférences et formation pour les architectes, les meilleures pratiques,
- 15. Quelles sont les meilleures pratiques pour gérer les informations sensibles?
- 16. Quelles sont les meilleures pratiques pour les URL publiques «privées»?
- 17. Quelles sont les meilleures pratiques OOoBasic?
- 18. Meilleures pratiques pour recevoir des e-mails dans les rails
- 19. Meilleures pratiques pour les tailles codées en dur dans XAML
- 20. HTML Traverse et trouver les meilleures pratiques
- 21. Model View ViewModel les meilleures pratiques
- 22. y compris dynamiquement les scripts php
- 23. Meilleures pratiques SCM pour les bases de données en direct
- 24. Y compris Javascript dans les pages Web
- 25. les meilleures pratiques/Logiciel d'analyse orientée objet
- 26. Meilleures pratiques pour les appels asynchrones dans MVP avec WinForms
- 27. Quelles sont les meilleures pratiques pour l'API Middleware?
- 28. Meilleures pratiques pour patcher les systèmes Java d'entreprise?
- 29. Meilleures pratiques pour les solutions volumineuses dans Visual Studio (2008)
- 30. Y compris les Partials, ASP.NET MVC
Merci! Je ne sais pas les intentions originales de cette option, mais je pense était timestamp pourrait servir l'un des 2 intentions: * Allow reproductible construit (Instante spécifique de l'instantané) * Assurez-vous que la dernière version est utilisée, indépendamment de la mise en cache ou détails de la synchronisation inter-repo (puisque le nom de l'artefact snapshot change, il est (r) synchronisé, sans cela il semble y avoir quelques problèmes) Mais la raison pour laquelle j'ai demandé était: je ne sais pas si ceux-ci sont considérés valides. :-) Je viens de voir l'option et j'ai vu certains projets (comme Enunciate) utiliser des horodatages pour leurs instantanés. – StaxMan
Vous voudrez peut-être utiliser un instantané de cinq versions parce que c'est ce que vous avez testé. Parfois, vous avez besoin de quelque chose de plus récent que la dernière version (par exemple, en raison d'une nouvelle fonctionnalité), mais la prochaine version n'est pas due à temps. Donc, vous choisissez un instantané et le tester. – derobert