Question

J'ai un problème simple, avec une réponse simple probablement, mais je ne trouve pas de quoi il s'agit.Nous souhaitons déployer SonarQube avec Checkstyle et quelques autres outils, mais nous ne pouvons pas savoir s'il est destiné à un déploiement centralisé sur serveur ou sur chaque ordinateur de développeur ?Tous les didacticiels montrent des installations sur des machines distinctes et utilisées dans l'hôte local, alors qu'il existe un exemple d'instance publique, et les exigences et les spécifications ressemblent certainement à celles d'un service.

D'un autre côté, je ne comprends pas comment les développeurs soumettent leur code pour vérifier s'il se trouve sur un serveur.

Bref, comment se déploie-t-il ?Toute liste de contrôle ou quelque chose de similaire serait d'une grande aide.

Était-ce utile?

La solution

Sonarqube (anciennement "Sonar") est un système serveur. Bien sûr, vous pouvez l'installer sur votre machine locale (les exigences matérielles sont minimes). Mais c'est un serveur central avec une base de données.

Les analyses sont effectuées par certains logiciels de "client" Sonar, qui pourraient être le coureur Sonar, la tâche Sonar Ant, le plug-in Sonar Eclipse, etc. Les résultats d'analyse peuvent être automatiquement téléchargés sur le serveur, où ils sont accessibles via le Application Web Sonar.

Dans un environnement avec de nombreux développeurs, vous devez exécuter un serveur de construction (E.G. Hudson ou Jenkins), qui effectue des analyses de sonar automatiques dans le cadre de la construction nocturne. D'autres horaires sont possibles, mais les développeurs doivent savoir quand ils peuvent s'attendre à des mises à jour des résultats de l'analyse côté serveur. Les résultats de l'analyse automatisée peuvent être affichés dans l'éditeur Eclipse de chaque développeur à titre de plug-in Sonar Eclipse.

La documentation architecturale sur sonar est assez clairsemée. J'ai cherché une photo pour visualiser ce que je viens de décrire, mais je n'ai pas trouvé un ...

Autres conseils

L'architecture « runtime » de SonarQube comporte plusieurs éléments :

  1. Serveur SonarQube.Il contient une base de données (par exemple, MySQL) et un serveur Web intégré (TOMCAT).Le serveur SonarQube stocke les résultats des analyses (les mesures), mais n'exécute pas les analyses de code.Ce serveur fournit une interface utilisateur Web qui affiche le tableau de bord des projets, diverses mesures et explore dans le code, les options d'administration.Il utilise une architecture enfichable : vous pouvez ajouter/supprimer des fonctionnalités via des plug-ins.
  2. Programme qui exécute l'analyse du code sur la machine du développeur.Il existe des options : (un) s'ils utilisent Eclipse ou IntelliJ, ils peuvent utiliser le plug-in SonarLint correspondant, qui fournit des propriétés de configuration, des options de menu pour exécuter l'analyse, une vue pour afficher les violations, etc. ; (b) les développeurs peuvent également exécuter une analyse de code via maven (mvn sonar:sonar) ou un diplôme (gradlew sonarqube); (c) les développeurs peuvent exécuter les différentes analyses de code via un programme appelé SonarQube Runner.Toutes ces options des programmes qui exécutent l'analyse sur la machine du développeur doivent être configurées pour communiquer avec un serveur SonarQube.Par exemple, lorsque vous exécutez une analyse de code dans IntelliJ à l'aide de SonarLint, les métriques seront téléchargées sur le serveur.Ce serveur est généralement partagé par tous les développeurs, mais il peut également être localhost.
  3. Programme qui exécute l'analyse de code sur le serveur CI/CD.Le travail/pipeline qui crée un projet logiciel peut être configuré pour exécuter l'analyse de code SonarQube.Cela peut être fait via maven ou gradle comme sur la machine du développeur, ou via un plug-in.Il y a Plug-ins SonarQube CI pour Jenkins, Hudson, Bamboo et autres.En fonction de la taille de votre projet, vous souhaiterez peut-être configurer l'analyse du code pour qu'elle s'exécute une fois par jour uniquement, et non à chaque validation de code ou modification des dépendances.L'analyse du code SonarQube exécutée sur le serveur CI enverra également les métriques générées au serveur SonarQube.

La documentation sur l'architecture SonarQube est très pauvre (pour ne pas dire absente), il est donc difficile d'avoir une vue d'ensemble.J'espère que ça aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top