|
Publicité | |||||||||||||||||||||||
|
|
#1 |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
Bonjour à toutes et à tous,
Mon article sur Sonar a été publié il y a 11 mois tout juste, lorsque la version 1.4 était la dernière version existante. Aujourd'hui, alors que la version 1.10 est (quasiment) sortie, je viens de mettre à jour cet article ! Il est visible ici. Vos commentaires, vos réactions sont les bienvenus !
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven Dernière modification par romaintaz ; 13/08/2009 à 19h13. |
|
|
|
|
#2 |
![]() Date d'inscription: juillet 2008
Messages: 163
|
Très bon article!
Aujourd'hui Sonar s'ouvre à d'autres langages que Java comme le PHP. Il y a également des plugins pour le C/C++ en préparation. De même, il est tout à fait possible d'avoir un jour des plugins pour le langage Ada. C’est pourquoi, il pourrait être intéressant de rajouter une partie sur cela dans une prochaine version. Qu'en penses-tu? PS : Si tu as besoin d'aide, je pourrais te donner un coup de main. |
|
|
|
|
#3 |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
Merci pour ton retour,
Pour le moment, Sonar ne gère que le Java (et le PL/SQL), même si effectivement la gestion du PHP est en cours de développement (à moins que ce ne soit sorti, mais j'en doute). Je ferais sans doute un update de l'article en fin d'année, où j'incluerais ces informations !
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
|
|
|
#4 |
![]() Date d'inscription: juillet 2008
Messages: 163
|
Pour info, voici les pages Wiki pour le support de PHP et de C/C++.
Pour le PHP http://docs.codehaus.org/display/SONAR/Sonar+PHP+Plugin Pour le C/C++ http://docs.codehaus.org/display/SONAR/CPP+plugin Effectivement, le plugin PHP n'est pas encore sorti. |
|
|
|
|
#5 |
|
Inactif(ve)
![]() Nom : Alexandre Jaquet
Date d'inscription: mai 2006
Localisation: Fribourg
Âge: 29
Messages: 2 180
|
Excellent article une mine d'informations très utile !
|
|
|
|
|
|
#6 |
![]() |
Merci pour cet excellent article
Je viens d'installer Sonar en suivant ton article et ça c'est très bien passé. Je n'ai pas encore tout testé, loin s'en faut, mais c'est tout de même dommage d'être obligé de passer par Maven. Personnellement, j'utilise toujours Ant pour mes buils et je n'ai pas envie d'apprendre Maven. J'ai mis un bon moment à configurer un pom.xml qui marche correctement pour mon projet. J'avais juste une question avec ça, si je veux que Sonar calcule la couverture de codes, je dois éxécuter les tests unitaires avec Maven et il detéctera ou il faut faire autre chose ?
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
#7 |
![]() Date d'inscription: juillet 2008
Messages: 163
|
Sonar utilise Maven 2 sous le capot. Il en a besoin pour analyser les sources et injecter les résultats de l'exécution des métriques dans sa base de données. C'est pourquoi, pour utiliser Sonar, on doit installer et configurer Maven.
Néanmoins, il est toujours possible d'utiliser un autre outil de build que Maven comme builder de son projet. En effet, nombreux sont les projets n'utilisant pas Maven pour différentes raison (connaissance insuffisante, non adapté au contexte projet, trop limité, ...). Dans ce cas, tu dois utiliser le mode "Sonar light". Il te faut créer un descripteur Maven (pom.xml) et invoquer Sonar avec ce descripteur Maven (mvn sonar:sonar) avec un ensemble de propriétés systèmes spécifiant l'emplacement des rapports de métriques (résultats des tests, couverture de code, ...) générés par le builder de ton projet (Ant, Gradle, ...). Parmis ces propriétés, tu as notamment la propriété "sonar.dynamicAnalysis" à "reuseReports" indiquant à Sonar de ne jouer que le rôle d'un collecteur de données. Tu trouveras bien sûr plus d'informations sur la page officielle du Wiki de Sonar http://docs.codehaus.org/display/SON...+Java+Projects Ainsi pour répondre précisément à ta question, tu peux continuer à utiliser Ant pour exécuter tes tests et produire les rapports du résultat des tests et de de la couverture de code. Ton apprentissage à Maven se limitera à la création du pom.xml template. De plus, si tu es sous intégration continue et tu utilises Hudson, tu peux déléguer la création du descripteur Maven au plugin Sonar de Hudson. http://wiki.hudson-ci.org/display/HUDSON/Sonar+plugin Mais, c'est vrai qu'il faudra toujours installer et configurer Maven pour pouvoir utiliser Sonar. Néanmoins, dans cette situation, Maven sera uniquement un outil d'infrastructure et il ne sera pas un outil de build pour le développeur. Néanmoins, il est tout à fait légitime de se poser la question, pourquoi avoir besoin d'installer la très lourde infrastructure Maven quand je n'ai pas déjà Maven. Cette problématique deviendra d'autant plus importante dans l'avenir quand Sonar supportera officiellement d'autres langages comme le C/C++ et PHP ou même ADA. En effet, Maven n'est pas vraiment un outil adapté pour ces derniers langages. Et il est tout à fait légitime d'admettre que les intégrateurs de ces plateformes ne souhaitent pas mettre en place Maven pour utiliser Sonar. Le risque à terme serait la non possibilité d'utiliser Sonar. Et c'est dommage! A mon avis, cette problématique n'est pas une priorité à court terme pour l'équipe Sonar, devant la popularité et le très fort déploiement aujourd'hui de Maven sur les projets. Mais à terme, il sera sans aucun doute nécessaire d'avoir un mode d'installation et d'utilisation plus simple de Sonar, c'est à dire sans Maven. Selon moi, je vois bien le remplacement en interne de Maven par Gradle. Les conventions fournis par Gradle et ses plugins permettraient à Sonar de pouvoir invoquer et collecter les résultats des métriques comme il le fait avec Maven aujourd'hui. Ensuite, pour les dépendances vers les plugins Sonar et les dépendances vers les librairies métiers (log4j.jar, checkstyle.jar, ...), Sonar pourrait utiliser Ivy (natif dans Gradle) permettant d'exploiter les librairies avec un resolver local, c'est à dire embeded dans un répertoire du file système mis en place au moment de l'installation de Sonar. Dernière modification par gboissinot ; 14/08/2009 à 21h31. |
|
|
|
|
#8 |
![]() |
Merci, mais ça j'avais déjà compris, désolé
C'est effectivement ce que j'avais avec Sonar Light, mais même avec ça, pour configurer toutes les dépendances de mon projet, je me suis bien emmerdé pour moi qui connait très peu Maven... Par contre, j'aimerais bien éviter de dépendre du build Ant pour la couverture de code. Donc, pour que Sonar détecte mes tests et effectue les calculs de couverture de code, il faut que mes tests soient éxécutés depuis Maven, c'est bien ça ?
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
#9 |
![]() Date d'inscription: juillet 2008
Messages: 163
|
En fait, ton besoin est peu habituel.
Si j’ai bien compris, tu vas utiliser au sein de ton projet à la fois le builder Ant et le builder Maven. Est-ce qu’il y a une raison bien particulière de ce choix ou de cette contrainte? De plus, ton outil de couverture de code (comme Cobertura) va également relancer les tests pour calculer la couverture de code et donc tes tests seront lancés aussi par Maven, donc… Ou alors, tu veux instrumenter tes classes par Maven, lancer tes tests avec Ant et exécuter l’action de génération du rapport de couverture de code (au format XML) avec Maven? Je pense que cela est un peu tordu. Bref, excuse-moi mais j’ai du mal à comprendre ton besoin. Mais sinon, si tu veux mixer des actions Ant et Maven avec Sonar, oui c’est possible. Donc si tu es en full Ant, tu crée un pom template avec par exemples les propriétés suivantes Code :
<properties>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.surefire.reportsPath>bin/surefire-reports</sonar.surefire.reportsPath>
<sonar.cobertura.reportPath>bin/coverage/coverage.xml</sonar.cobertura.reportPath>
</properties>
Code :
mvn sonar:sonar Code :
<properties>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.surefire.reportsPath>bin/surefire-reports</sonar.surefire.reportsPath>
<sonar.cobertura.reportPath>target/site/cobertura/coverage.xml</sonar.cobertura.reportPath>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<formats><format>xml</format></formats>
</configuration>
</plugin>
</plugins>
</build>
Code :
mvn cobertura:cobertura sonar:sonar En espérant que cela t’aide. |
|
|
|
|
#10 | |
|
Inactif(ve)
![]() Nom : Alexandre Jaquet
Date d'inscription: mai 2006
Localisation: Fribourg
Âge: 29
Messages: 2 180
|
Citation:
D'ailleurs ou tu as fait ton apprentissage le passage à maven est déjà prévu et plein d'autres choses |
|
|
|
|
|
|
#11 |
![]() |
C'est vrai que ça peut paraître compliqué.
En fait, j'utilise TeamCity pour calculer la couverture de code, mais je ne suis pas trop satisfait, parce qu'avec ça les fichiers jar sont instrumentés avec emma et nécessite emma.jar à l'éxécution, c'est donc pour ça que j'aimerais découpler la partie build de la partie tests et analyse. Mais en réfléchissant et en lisant tes explications, je me rends compte que tout ce que j'ai à faire, c'est supprimmer le mode light de sonar et tout est analysé correctement Merci beaucoup pour tes explications
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
#12 | |
|
Inactif(ve)
![]() Nom : Alexandre Jaquet
Date d'inscription: mai 2006
Localisation: Fribourg
Âge: 29
Messages: 2 180
|
Citation:
|
|
|
|
|
|
|
#13 |
![]() |
romaintaz, tu sais quand est-ce que les modules seront compatibles avec cette nouvelle version ?
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
#14 | |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
Citation:
De quels modules parles-tu exactement ? Des plugins ?
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
|
|
|
|
#15 | |
![]() |
Citation:
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
|
#16 |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
De quels plugins parles-tu ? Ceux déjà disponibles (sur cette page) ?
Dans ce cas, il faut attendre que chaque développeur fasse la mise à jour de son plugin pour le rendre compatible avec Sonar 1.10 (je ne sais pas si on peut installer sans trop de soucis un plugin prévu pour la 1.9 sur la 1.10).
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
|
|
|
#17 | |
![]() |
Citation:
J'ai testé MetricsAnalytics sans succès, l'application ne démarrait pas du tout, pareil pour TechnicalDebt et TagList. Je vais attendre, merci
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
|
#18 |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
C'est bizarre, Taglist et TechnicalDebt sont utilisés sur Nemo qui tourne sur un Sonar 1.10 (RC4 pour être précis).
Bon, peut-être que l'équipe de développement de Sonar a installé des versions non encore définitives de ces plugins...
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
|
|
|
#19 | |
![]() |
Citation:
__________________
Responsable Java - Projets - FAQ Hibernate - FAQ Java - Tous mes tutos (Java, PHP, SQL-Server, Hardware) - JTheque - Site - Forum Ma Brute Vous souhaitez contribuer à la rubrique Java : Contactez-moi Developpez.com propose un hébergement pour vos projets Open Source |
|
|
|
|
|
#20 |
![]() Nom : Romain Linsolas
Date d'inscription: juillet 2005
Localisation: Yvelines
Âge: 31
Messages: 2 600
|
Le plugin TechnicalDebt est en cours de vote pour release pour sa version 0.3, compatible avec Sonar 1.10...
Plus longtemps à attendre donc
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
|
|
|
![]() |
||
[Sonar] Mise-à-jour de l'article sur Sonar
|
||
| Outils de la discussion | |
|
|