développement logiciel au greyc - bonnes pratiques : outils

30
eveloppement logiciel au Greyc Bonnes pratiques : Outils / M´ ethodes Service D´ eveloppement GREYC, CNRS UMR 6072 [email protected] Novembre 2014

Upload: dangtuong

Post on 05-Jan-2017

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Développement logiciel au Greyc - Bonnes pratiques : Outils

Developpement logiciel au GreycBonnes pratiques : Outils / Methodes

Service Developpement

GREYC, CNRS UMR [email protected]

Novembre 2014

Page 2: Développement logiciel au Greyc - Bonnes pratiques : Outils

Introduction

L’integration continue

Outils a votre disposition

Environnement de developpement

Page 3: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 4: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 5: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 6: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 7: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 8: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 9: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 10: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 11: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 12: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 13: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 14: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 15: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 16: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 17: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 18: Développement logiciel au Greyc - Bonnes pratiques : Outils

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://[email protected]’:

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

Page 19: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 20: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 21: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 22: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 23: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 24: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 25: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 26: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 27: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 28: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 29: Développement logiciel au Greyc - Bonnes pratiques : Outils

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

Page 30: Développement logiciel au Greyc - Bonnes pratiques : Outils

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