web-dev-qa-db-fra.com

maven connexion à Sonar

J'ai installé maven sur ma machine locale et j'essaie de tester Sonar installé sur une boîte distante.

J'ai trouvé quelques articles en ligne pour configurer settings.xml(maven\config\settings.xml) et ajouter une entrée de profil ... ce que j'ai fait mais qui ne fonctionne pas

<profile>
   <id>sonar</id>
   <activation>
      <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
      <!-- SERVER ON A REMOTE Host -->
      <sonar.Host.url>http://remotebox:9000</sonar.Host.url>
   </properties>
</profile>

Quelle est la voie cli? J'ai essayé plusieurs options mais rien n'a fonctionné.

J'ai essayé: mvn sonar:sonar http://remotebox:9000

Quelle est la syntaxe correcte?

Merci d'avance. Damian

PS. cela fonctionne bien sur la boîte distante où le maven et le sonar sont installés ... je veux juste l'essayer ma boîte à la boîte distante.

24
Damian

Utilisation du sonar avec

mvn sonar:sonar -Dsonar.jdbc.url=jdbc:h2:tcp://ipaddr:9092/sonar -Dsonar.Host.url=http://ipaddr:9000

, où ipaddr est votre hôte distant, semble fonctionner.

36
teknopaul

Jusqu'à Version 5.2 à côté de sonar.Host.url vous devez également spécifier les paramètres de la base de données comme décrit ici . De cette façon, cela fonctionne pour moi.

Exemple de configuration

<profile>
    <id>sonar</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <!-- EXAMPLE FOR MYSQL -->
        <sonar.jdbc.url>
          jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
        </sonar.jdbc.url>
        <sonar.jdbc.username>sonar</sonar.jdbc.username>
        <sonar.jdbc.password>sonar</sonar.jdbc.password>

        <!-- optional URL to server. Default value is http://localhost:9000 -->
        <sonar.Host.url>
          http://myserver:9000
        </sonar.Host.url>
    </properties>
</profile>

Depuis la version 5.2 ce n'est plus nécessaire:

Citation :

Les scanners n'accèdent pas à la base de données

Il s'agit du plus grand changement de cette nouvelle version: les scanners (par exemple Sonar Runner) n'accèdent plus à la base de données, ils utilisent uniquement les services Web pour communiquer avec le serveur. En pratique, cela signifie que les propriétés de connexion JDBC peuvent désormais être supprimées des travaux d'analyse CI: sonar.jdbc.url, sonar.jdbc.username, sonar.jdbc.password

23
FrVaBe

Juste les travaux suivants pour sonar-maven-plugin:3.2:

mvn sonar:sonar -Dsonar.Host.url=http://<sonarqubeserver>:<port>

9
Rocky Inde

Problème 1

Comme expliqué, vous devez spécifier les détails de la connexion JDBC, sinon Sonar tentera de parler à l'instance Derby intégrée, il suppose qu'il s'exécute sur localhost.

Problème 2

Utilisez-vous Derby? Eh bien, la configuration par défaut de Derby n'accepte pas les connexions distantes, mais uniquement les connexions du même hôte.

Le problème SONAR-1039 explique comment contourner ce problème, mais mon conseil serait de configurer une base de données complète telle que MySQL ou Postgresql .

7
Mark O'Connor

J'ai eu un problème et j'ai réalisé que j'utilisais mavn sur le pom parent alors que la configuration du sonar était dans un pom enfant, pour lequel je voulais un rapport d'analyse de toute façon, donc exécuter sonar mvn: sonar avec pom enfant fonctionnait.

0
Asit