développement logiciel au greyc - bonnes pratiques : outils
Post on 05-Jan-2017
217 Views
Preview:
TRANSCRIPT
Developpement logiciel au GreycBonnes pratiques : Outils / Methodes
Service Developpement
GREYC, CNRS UMR 6072dev-users@greyc.fr
Novembre 2014
Introduction
L’integration continue
Outils a votre disposition
Environnement de developpement
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Sommaire
1 Integration continueObjectifsPratiques d’integration continueRegle 1Regles 2, 3, 6 et 10Regles 5, 8 et 9
2 JavaJRE, JDKIDE
3 La forgePresentation
Creer un projet4 Subversion, Git et Maven
Recuperer le depot du projet(subversion)Recuperer le depot du projet (git)MavenEnregistrer le nouveau projet(subversion)Enregistrer le nouveau projet (git)
5 Import dans Eclipse6 Import dans Netbeans7 Conclusion
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 3 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Objectifs
L’integrateur
Assemble le travail de plusieurs programmeurs et livre le produit fini auxtesteurs de l’equipe qualite.
L’integration continue
Reduit les problemes d’integration ;
Facilite la cohesion des logiciels.
http://www.martinfowler.com/articles/continuousIntegration.html
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 4 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Pratiques d’integration continue
Les pratiques d’integration continue sont les suivantes :
1 Maintenir un depot unique de code source versionne ;
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’integration ;
6 Mettre en œuvre des chaınes de compilation rapides ;
7 Tester dans un environnement de production clone ;
8 Chacun peut acceder facilement a la derniere version executable ;
9 Chacun peut voir ce qui se passe ;
10 Automatiser les deploiements.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 5 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Regle 1
Maintenir un depot unique de code source versionne
La forge du laboratoire, disponible pour l’ensemble du greyc, support assure par leservice developpement et les administrateurs systemes :
redmine ;
Le serveur de versions : subversion ou git ;
https://forge.greyc.fr/
La forge du C.R.U. (developpements inter-u) :
sourcesup ;
Le serveur de versions : subversion ou git ;
https://sourcesup.cru.fr/
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 6 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Regles 2, 3, 6 et 10
Automatiser les compilations ;
Rendre les compilations auto-testantes ;
Mettre en oeuvre des chaınes de compilation rapides ;
Automatiser les deploiements.
Support assure pour 3 outils populaires :
Maven ;
Ant ;
Makefile.
D’autres outils existent... libre a vous de choisir l’outil le mieux adapte a votrebesoin...
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 7 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Regles 5, 8 et 9
Chaque projet doit construire le tronc sur une machine d’integration ;
Chacun peut acceder facilement a la derniere version executable ;
Chacun peut voir ce qui se passe.
Outils :
Jenkins, serveur d’integration continue (java).
http ://localhost :8080/jenkins/
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 8 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Java, JRE, JDK
Les versions de java pre-installees sont :
Open JDK 7 ;
Oracle JDK 8.
La variable JAVA HOME pointe sur l’emplacement du JRE. Il vous appartient dedeclarer 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 Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 9 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Java, IDE
2 Environnements de Developpement Integres (IDE) sont installes sur lesmachines :
Eclipse 4.4 (Luna)
Netbeans 7.4
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 10 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Eclipse vs Netbeans
Parts de marche (2011) :
Netbeans, 8 %
Eclipse, 61 %
En resume...
Netbeans, peut-etre plus facile a prendre en main, plutot moins utilise ;
Eclipse, plus sophistique, largement repandu.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 11 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
La forge, presentation
Un site web :
https://forge.greyc.fr/
Un outil : redmine
Depot de sources ;
Wiki ;
Gestion des anomalies ;
Demandes d’evolutions ;
Support.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 12 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet
Etape 1 : se connecter a l’aide de son persop@ss
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 13 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet (Etape 2 et 3)
Etape 2 : Cliquer sur l’onglet ”projets”
Etape 3 : Cliquer sur ”Nouveau projet”
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 14 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet (Etape 4)
Etape 4 : Completez les champs du formulaire, sans oublier le champ”Description”
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 15 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet (Etape 5), confirmation
Etape 5 : Une confirmation par courriel vous est adressee
Pour plus d’informations au sujet de la forge, consultez le seminaire sysadmina l’adresse ci-dessous
https://portail.greyc.fr/fr/ressources/seminaires_sysadmin
https://portail.greyc.fr/fr/ressources/forge
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 16 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Recuperer le depot du projet (subversion)
SVN ”checkout” afin de recuperer le depot du projet en local
Exemple
$ svn checkout https://forge.greyc.fr/svn/sandbox --username paul
Domaine d’authentification : <https://forge.greyc.fr:443> SVN Repository
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
Revision 21 extraite.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 17 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Recuperer le depot du projet (git)
git ”clone” afin de recuperer le depot 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://couronne@forge.greyc.fr’:
remote: Counting objects: 2, done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
Verification de la connectivite... fait.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 18 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet a l’aide de maven
Maven permet de creer des structures de projets pretes a 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 maniere uniqueparmi tous les autres projets ;
artifactId, le nom de votre projet, qui sera egalement le nom de votre jar ;
archetypeArtifactId, l’identifiant du modele de projet.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 19 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet a l’aide de maven
Exemple de creation de projet a l’aide du modelemaven-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 Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 20 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Creer un projet a l’aide de maven
Maven propose plus de 1000 modeles de projets differents
Exemple
~/projets/sandbox/trunk$ mvn archetype:generate
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 21 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Les principales commandes Maven
mvn clean, nettoie le projet
mvn compile, compile le projet
mvn package, construit le jar, le war ou l’ear
mvn install, depose le jar dans le repository local maven
mvn deploy, deploie le war dans l’environnement de test
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 22 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Enregistrer le nouveau projet (subversion)
On procede ensuite a 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 donnees ...
Revision 22 propagee.
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 23 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Enregistrer le nouveau projet (git)
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.java
create mode 100644 carotte/src/test/java/fr/unicaen/carotte/AppTest.java
$
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 24 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Import du projet dans eclipse
File > Import > Maven > Existing Maven Projects
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 25 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Import du projet dans eclipse
Selection du dossier qui contient le pom.xml
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 26 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Import du projet dans eclipse
Naviguer dans le package explorer
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 27 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Import du projet dans Netbeans
File > Open Project
Selectionnez le projet Maven
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 28 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Import du projet dans Netbeans
Cliquez sur Open Project, puis naviguez dans le project explorer
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 29 / 30
SommaireIntegration continueJavaLa forgeSubversion, Git et MavenImport dans EclipseImport dans NetbeansConclusion
Conclusion
Le portail du laboratoire
https://portail.greyc.fr/
Le guide des bonnes pratiques en developpement logiciel
https://portail.greyc.fr/sites/default/files/documentation/
developpement/bonnes-pratiques.pdf
Service Developpement (GREYC) Developpement logiciel au Greyc Novembre 2014 30 / 30
top related