Formation : Usine logicielle
Objectifs
- Automatiser le cycle de vie d'un produit
- Améliorer la testabilité
- Mesurer la qualité
- Déployer en continu
Méthode pédagogique
Les participants auront à leur disposition un projet Java qu'ils auront à intégrer au sein d'une usine logicielle de façon itérative
Chaque projet fera l’objet d’une itération de 2H :
- 20 min de présentation de l’itération : présentation de l’exercice et des concepts à utiliser.
- 1h20 de pratique.
- 20 min de rétrospective : présentation par les participants des difficultés rencontrées et de leur résolutions.
Au programme
Les outils de build automatisé
convention over configurationLa standardisation, un exemple avec maven
les causes d’échec d’adoption de maven
Maven : Les fondamentaux
cycle de viele fichier pom.xml
le packaging
le fichier settings.xml
les modules
la gestion des ressources (et le filtrage)
les profils
Repository et artefact
le repo local et le repo distantl’artefact
présentation d’un repo d’entreprise : nexus
mettre en place nexus
brancher nexus sur ldap
mettre en place des proxy vers les repos externes
les virtual groups
la maintenance des snapshots (job de purge)
le plugin maven deploy pour stocker vos artefacts
le plugin maven release pour stocker vos artefacts, gérer leur version et s’intégrer avec votre gestionnaire de source
trouver un artefact sur mvnrepository et mvnbrowser
Gérer ses dépendances
la mauvaise gestion des dépendances, une cause d’échec de l’utilisation de mavenla transitivité
les scopes
la centralisation des versions (dependencymanagement et pluginmanagement)
le plugin dependency ou comment maintenir vos dépendances
les bonnes pratiques
Les tests
les différents type de testle plugin surefire et les différents mode de fork
le plugin failsafe
le debugging
les tests évolué avec soapui, jmeter et gatling
Optimiser votre temps de build
Un principe, gardez votre temps de build unitaire < 10 min maximumle build incrémental
la parralélisation des tests
le build différentiel et jenkins/bamboo, ou comment ne pas relancer les projets de génération de code systématiquement
lancer le packaging sur un build à part
attention à la surmodularisation
Automatisez votre build (jenkins ou bamboo)
mise en placegestion des autorisations
les plugins vitaux
les notifications
la release
le reporting
le build distribué
les tâches pré et post builds
les plugins
le plugin tomcat et son mode debugle plugin jaxws
le plugin jaxb
faire son propre plugin
L'intégration avec l'IDE
les différents modes : lancement de commande externe vs pluginles limitations
le reporting
le plugin siteles plugins de qualimétrie (checkstyle, pmd/cpd, findbugs)
comment rassurer vos managers en leur donnant des métriques
mise en place de sonar
quelques widgets sonar
la mise en place de la couverture de code avec jacoco
Déployer en continu
Le plugin sshRundeck et le plugin rundeck
Autres approches