Développement logiciel au Greyc

publicité
Développement logiciel au Greyc
Bonnes pratiques : Outils / Méthodes
Service Développement
GREYC, CNRS UMR 6072
[email protected]
Novembre 2014
Introduction
L’intégration continue
Outils à votre disposition
Environnement de développement
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Sommaire
1
Intégration continue
Objectifs
Pratiques d’intégration continue
Règle 1
Règles 2, 3, 6 et 10
Règles 5, 8 et 9
2
Java
JRE, JDK
IDE
3
La forge
Présentation
Service Développement (GREYC)
4
5
6
7
Créer un projet
Subversion, Git et Maven
Récupérer le dépôt du projet
(subversion)
Récupérer le dépôt du projet (git)
Maven
Enregistrer le nouveau projet
(subversion)
Enregistrer le nouveau projet (git)
Import dans Eclipse
Import dans Netbeans
Conclusion
Développement logiciel au Greyc
Novembre 2014
3 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Objectifs
L’intégrateur
Assemble le travail de plusieurs programmeurs et livre le produit fini aux
testeurs de l’équipe qualité.
L’intégration continue
Réduit les problèmes d’intégration ;
Facilite la cohésion des logiciels.
http://www.martinfowler.com/articles/continuousIntegration.html
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
4 / 30
Pratiques d’intégration continue
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Les pratiques d’intégration continue sont les suivantes :
1
Maintenir un dépôt unique de code source versionné ;
2
Automatiser les compilations ;
3
Rendre les compilations auto-testantes ;
4
Tout le monde commit sur le tronc chaque jour ;
5
Chaque commit doit construire le tronc sur une machine d’intégration ;
6
Mettre en œuvre des chaı̂nes de compilation rapides ;
7
Tester dans un environnement de production cloné ;
8
Chacun peut accéder facilement à la dernière version exécutable ;
9
Chacun peut voir ce qui se passe ;
10
Automatiser les déploiements.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
5 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Règle 1
Maintenir un dépôt unique de code source versionné
La forge du laboratoire, disponible pour l’ensemble du greyc, support assuré par le
service développement et les administrateurs systèmes :
redmine ;
Le serveur de versions : subversion ou git ;
https://forge.greyc.fr/
La forge du C.R.U. (développements inter-u) :
sourcesup ;
Le serveur de versions : subversion ou git ;
https://sourcesup.cru.fr/
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
6 / 30
Règles 2, 3, 6 et 10
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Automatiser les compilations ;
Rendre les compilations auto-testantes ;
Mettre en oeuvre des chaı̂nes de compilation rapides ;
Automatiser les deploiements.
Support assuré pour 3 outils populaires :
Maven ;
Ant ;
Makefile.
D’autres outils existent... libre à vous de choisir l’outil le mieux adapté à votre
besoin...
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
7 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Règles 5, 8 et 9
Chaque projet doit construire le tronc sur une machine d’intégration ;
Chacun peut accéder facilement à la dernière version exécutable ;
Chacun peut voir ce qui se passe.
Outils :
Jenkins, serveur d’intégration continue (java).
http ://localhost :8080/jenkins/
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
8 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Java, JRE, JDK
Les versions de java pré-installées sont :
Open JDK 7 ;
Oracle JDK 8.
La variable JAVA HOME pointe sur l’emplacement du JRE. Il vous appartient de
déclarer la version de java qui vous convient, par exemple, dans votre .bashrc.
export JAVA HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export JAVA HOME=/usr/local/jdk1.8
export PATH=${JAVA HOME}/bin:${PATH}
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
9 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Java, IDE
2 Environnements de Développement Intégrés (IDE) sont installés sur les
machines :
Eclipse 4.4 (Luna)
Netbeans 7.4
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
10 / 30
Eclipse vs Netbeans
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Parts de marché (2011) :
Netbeans, 8 %
Eclipse, 61 %
En résumé...
Netbeans, peut-être plus facile à prendre en main, plutôt moins utilisé ;
Eclipse, plus sophistiqué, largement répandu.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
11 / 30
La forge, présentation
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Un site web :
https://forge.greyc.fr/
Un outil : redmine
Dépôt de sources ;
Wiki ;
Gestion des anomalies ;
Demandes d’évolutions ;
Support.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
12 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Créer un projet
Étape 1 : se connecter à l’aide de son persop@ss
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
13 / 30
Créer un projet (Étape 2 et 3)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Étape 2 : Cliquer sur l’onglet ”projets”
Étape 3 : Cliquer sur ”Nouveau projet”
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
14 / 30
Créer un projet (Étape 4)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Étape 4 : Complétez les champs du formulaire, sans oublier le champ
”Description”
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
15 / 30
Créer un projet (Étape 5), confirmation
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Étape 5 : Une confirmation par courriel vous est adressée
Pour plus d’informations au sujet de la forge, consultez le séminaire sysadmin
à l’adresse ci-dessous
https://portail.greyc.fr/fr/ressources/seminaires_sysadmin
https://portail.greyc.fr/fr/ressources/forge
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
16 / 30
Récupérer le dépôt du projet (subversion)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
SVN ”checkout” afin de récupérer le dépôt du projet en local
Exemple
$ svn checkout https://forge.greyc.fr/svn/sandbox --username paul
Domaine d’authentification : <https://forge.greyc.fr:443> SVN Reposi
Mot de passe pour ’paul’ :
A
sandbox/trunk
A
sandbox/trunk2
A
sandbox/tags
A
sandbox/tags/version-1.2
A
sandbox/tags/version-1.2/yo
Révision 21 extraite.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
17 / 30
Récupérer le dépôt du projet (git)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
git ”clone” afin de récupérer le dépôt du projet en local
Exemple
$ git clone https://forge.greyc.fr/git/sandbox-git/
Clonage dans ’sandbox-git’...
Username for ’https://forge.greyc.fr’: couronne
Password for ’https://[email protected]’:
remote: Counting objects: 2, done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
Vérification de la connectivité... fait.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
18 / 30
Créer un projet à l’aide de maven
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Maven permet de créer des structures de projets prêtes à l’emploi
Exemple
~/projets$ cd sandbox/trunk
~/projets/sandbox/trunk$ mvn archetype:generate
-DgroupId=fr.unicaen.carotte
-DartifactId=carotte
-DarchetypeArtifactId=maven-archetype-quickstart
groupId, le nom du paquetage qui identifie l’application de manière unique
parmi tous les autres projets ;
artifactId, le nom de votre projet, qui sera également le nom de votre jar ;
archetypeArtifactId, l’identifiant du modèle de projet.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
19 / 30
Créer un projet à l’aide de maven
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Exemple de création de projet à l’aide du modèle
maven-archetype-quickstart
Exemple
~/projets/sandbox/trunk$ find
...
./carotte
./carotte/pom.xml
...
./carotte/src/main/java/fr/unicaen/carotte
./carotte/src/main/java/fr/unicaen/carotte/App.java
...
./carotte/src/test/java/fr/unicaen/carotte
./carotte/src/test/java/fr/unicaen/carotte/AppTest.java
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
20 / 30
Créer un projet à l’aide de maven
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Maven propose plus de 1000 modèles de projets différents
Exemple
~/projets/sandbox/trunk$ mvn archetype:generate
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
21 / 30
Les principales commandes Maven
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
mvn clean, nettoie le projet
mvn compile, compile le projet
mvn package, construit le jar, le war ou l’ear
mvn install, dépose le jar dans le repository local maven
mvn deploy, deploie le war dans l’environnement de test
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
22 / 30
Enregistrer le nouveau projet (subversion)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
On procède ensuite à l’enregistrement du projet sous subversion
Exemple
$ svn add carotte
A
carotte
A
carotte/pom.xml
...
$ svn -m ’import initial projet carotte’ commit
Ajout
carotte
Ajout
carotte/pom.xml
...
Transmission des données ...
Révision 22 propagée.
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
23 / 30
Enregistrer le nouveau projet (git)
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Avec git, les commandes sont les suivantes
Exemple
$ git add carotte/
$ git commit
[master ae35e36] ajout de l’archetype projet maven
...
3 files changed, 69 insertions(+)
create mode 100644 carotte/pom.xml
create mode 100644 carotte/src/main/java/fr/unicaen/carotte/App.jav
create mode 100644 carotte/src/test/java/fr/unicaen/carotte/AppTest
$
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
24 / 30
Import du projet dans eclipse
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
File > Import > Maven > Existing Maven Projects
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
25 / 30
Import du projet dans eclipse
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Sélection du dossier qui contient le pom.xml
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
26 / 30
Import du projet dans eclipse
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Naviguer dans le package explorer
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
27 / 30
Import du projet dans Netbeans
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
File > Open Project
Sélectionnez le projet Maven
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
28 / 30
Import du projet dans Netbeans
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Cliquez sur Open Project, puis naviguez dans le project explorer
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
29 / 30
Sommaire
Intégration continue
Java
La forge
Subversion, Git et Maven
Import dans Eclipse
Import dans Netbeans
Conclusion
Conclusion
Le portail du laboratoire
https://portail.greyc.fr/
Le guide des bonnes pratiques en développement logiciel
https://portail.greyc.fr/sites/default/files/documentation/
developpement/bonnes-pratiques.pdf
Service Développement (GREYC)
Développement logiciel au Greyc
Novembre 2014
30 / 30
Téléchargement