Note: Cette question a été initialement publiée par Lahiru Gunathilake en tant que answer à un autre question. Je le propose ici en tant que question séparée pour plus de clarté. Quand nous faisons une version, nous construisons simplement dans notre machine locale et faisons le QA et ensuite nous l'hébergeons dans le référentiel. Si nous exécutons mvn deploy
cela crée-t-il de nouveaux artefacts, cette cause ayant un artefact différent dans le dépôt et dans la distribution binaire parce que nous créons la distribution binaire à partir de notre dépôt local. Mais si quelqu'un obtient le code source et fait la construction, il en obtiendra un autre. Mais si mvn deploy
ne construit pas, mais seulement déployer c'est bien.Si j'exécute mvn deploy crée-t-il de nouveaux artefacts ou déploie-t-il les artefacts déjà existants sur le serveur distant?
Répondre
Comme expliqué dans Build Lifecycle Basics:
Un cycle de vie de construction est composé des phases
Chacun de ces construire des cycles de vie est défini par une liste différente des phases de construction, dans lequel une phase de construction représente un étape dans le cycle de vie.
Par exemple, le cycle de vie par défaut les éléments suivants sont construire des phases (pour une liste complète des phases de construction, reportez-vous à la Lifecycle Reference):
validate
- valider le projet est correct et toutes les informations nécessaires sont disponiblescompile
- compiler le code source du projettest
- tester le code source compilé à l'aide d'un cadre de test approprié. Ces tests ne devraient pas exiger que le code soit empaqueté ou déployépackage
- prenez le code compilé et empaquetez-le dans son format distribuable, tel qu'un fichier JAR.integration-test
- processus et déployer le package si nécessaire dans un environnement où les tests d'intégration peuvent être exécutésverify
- exécuter des contrôles afin de vérifier le colis est valide et répond à des critères de qualitéinstall
- installez le package dans local référentiel, à utiliser en tant que dépendance dans d'autres projets localementdeploy
- effectué dans un environnement d'intégration ou de publication, copie le package final dans le référentiel distant pour le partager avec d'autres développeurs et projets.Ces phases de construction (plus les autres phases de construction non représentées ici) sont exécutées séquentiellement pour compléter le cycle de vie par défaut. Étant donné les phases de construction ci-dessus, cela signifie que lorsque le cycle de vie par défaut est utilisé, Maven va d'abord valider le projet, puis essayer de compiler les sources, les exécuter par rapport aux tests, les binaires (ex. package, vérifiez le package, installez le package vérifié dans le référentiel local, puis déployez le package installé dans un environnement spécifié.
Pour faire tout, il vous suffit d'appeler la dernière phase de construction à exécuter, dans ce cas, le déploiement:
mvn deploy
C'est parce que si vous appelez une phase de construction, il exécute non seulement cette phase de construction, mais aussi chaque phase de construction avant la phase de construction appelée.
Alors, la réponse est oui, mvn deploy
exécutera install
et construire les objets du projet. Mais si vous ne changez rien, cela produira exactement le même artefact.
- 1. Nouvelles images instantanées Maven pour les artefacts déjà publiés
- 2. Artefacts anti-aliasing dans WPF
- 3. Hudson - sauvegarder les artefacts que lorsque moins de 90% passe
- 4. Tomcat undeploy ne supprime pas les artefacts d'application Web
- 5. NSView laisse des artefacts sur un autre NSView lorsque le premier est déplacé sur le second
- 6. Existe-t-il un moyen de dire à maven où placer les artefacts?
- 7. Java construit avec différentes versions de JDK: mêmes artefacts?
- 8. Augmentez les performances de DELETE/INSERT sur le serveur distant
- 9. Comment puis-je retirer des artefacts de TeamCity?
- 10. Comment déterminer si le canal distant est déjà enregistré
- 11. StackPanel dessine des artefacts entre chaque contrôle enfant
- 12. Quels artefacts à sauvegarder pour une version publiée?
- 13. Superposition de chemins 2D sur UIImage sans mise à l'échelle des artefacts
- 14. Essayer de faire pivoter le cadre avant de prendre une capture d'écran, mais obtenir des artefacts
- 15. connexion de base de données SQL sur le serveur distant
- 16. Comment puis-je empêcher TeamCity de créer des artefacts pour les validations pré-testées?
- 17. Comment vérifier si les fichiers existent sur le serveur FTP?
- 18. si l'utilisateur est déjà connecté ou non?
- 19. exécutant un fichier de registre sur le serveur distant
- 20. Enregistrer le fichier img distant sur le serveur, avec php
- 21. fichiers ouverts dans Gvim existants dans plusieurs (nouveaux) onglets
- 22. Motifs de conception: quels sont les nouveaux, où sont utilisés les modèles existants?
- 23. Code pour surveiller le serveur pour les nouveaux fichiers
- 24. Comment exécuter les applications Red5 sur un serveur distant?
- 25. Comment sélectionner un fichier du serveur ou de l'appareil distant?
- 26. est-il possible de déboguer 2 clients d'un serveur distant (distant) sur le même PC?
- 27. OpenGL Les textures ES de PNG avec transparence sont rendues avec des artefacts étranges et me rendent fou!
- 28. Comment ajouter Outlook.TaskItems à des Outlook.Items déjà existants?
- 29. Comment puis-je déployer des artefacts d'une construction Maven dans le système de libération de fichiers SourceForge?
- 30. Téléchargement vers un serveur distant