Page 22 - Revista_60.pub
P. 22

A PROGRAMAR







                                                                           INTRODUÇÃO AO SONARQUBE

                                                                <Property Name="sonar.login">[TOKEN]</Property>
         <properties>
         …                                                      <Property Name="sonar.projectKey">
         <sonar.projectKey>Demo-Java</sonar.projectKey>                           SonarTestDotNetCore2</Property>
         <sonar.projectName>Demo-Java</sonar.projectName>       <Property Name="sonar.projectName">
         <sonar.projectVersion>1.0</sonar.projectVersion>                         SonarTestDotNetCore2</Property>
                <sonar.login>TOKEN</sonar.login>                <Property Name="sonar.projectVersion">1.0
         <sonar.password/>                                                                            </Property>
         <sonar.sources>./src/main/java</sonar.sources>         <Property Name="sonar.sourceEncoding">UTF-8
         <sonar.java.binaries>./target/classes</                                                      </Property>
         sonar.java.binaries>
         <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>     </SonarQubeAnalysisProperties>
         …                                                            Por  alguma  razão  o  SonarScanner  não  lê  o  ficheiro
         </properties>
         ...                                                    xml  da  raiz  do  projeto  como  acontece  com  o  scanner  para
         <build>                                                java, então temos que lhe dar o caminho completo para esse
         <pluginManagement>                                     ficheiro,  senão  ele  vai  procurar  à  pasta  de  instalação  do
         <plugins>
         ...                                                    scanner.
         <plugin>
         <groupId>org.sonarsource.scanner.maven</groupId>       dotnet <path to SonarScanner.MSBuild.dll> begin /
         <artifactId>sonar-maven-plugin</artifactId>            k:"project-key"
         <version>3.4.0.905</version>                           dotnet build
         </plugin>                                              dotnet <path to SonarScanner.MSBuild.dll> end
         ...
         </plugins>                                                   Passado  uns  momentos,  os  resultados  são  carrega-
         </pluginManagement>                                    dos no site.
         </build>
         ...                                                                 Figure 30: Analysis Results
         Na raiz do projeto executar:
         mvn clean verify sonar:sonar

         O output será semelhante ao obtido anteriormente.
         SonarQube Scanner for Dotnet Core 2
              Esta é uma feature que já estava há espera já há algum
         tempo,  uma  vez  que  a  maior  parte  do  tempo  trabalho  com  o
         meu Macbook seja em soluções Java ou C# (dotnet core) e faz   Pretty cool!
         todo o sentido conseguir fazer a análise também. Só recente-  Bonus Stuff
         mente (versão 6.7, se não me falha a memória) é que a análise
         de  projetos  em  C#  funcionam  em  ambientes  não  Windows,      Há  mais  um  tema  que  gostaria  de  referir,  algo  que
         ainda têm alguns “glitchs” mas “estamos” no bom caminho.   mais cedo ou mais tarde todos os projetos vão acabar por se
                                                                debater e a “techinical debt”. Tentamos que o nosso projeto
              Para  começar  é  preciso  instalar  e  configurar:  https://  não tenha “issues” que respeite todas as regras e todos os
         docs.sonarqube.org/display/SCAN/                       standards e que atinja  os valores ideais (de zero “issues”).
         Analyzing+with+SonarQube+Scanner+for+MSBuild           Acontece que quando usamos bibliotecas e ficheiros de ou-
              Na página indica que todas as propriedades são confi-  tras  fontes,  por  exemplo  a  utilização  de  JQuery  numa
         guradas através da linha de comandos, o que é uma seca, mas   webapp,  não  é  expectável  que  se  faça  alterações  ao  seu
         existe uma alternativa.                                código reduzir o “deficit”, mas também não é razoável que o
                                                                projeto  seja  prejudicado  por  isso.  Então  temos  que  retirar
              Na  pasta  de  instalação  do  scanner  para  o  msbuild/  essas fontes da análise.
         dotnetcore  existe  um  ficheiro  xml  (SonarQube.Analysis.xml)
         que copiamos para a raiz da solução e configuramos. Os co-
         mentários no ficheiro são importantes e devem ser considera-
         dos.
         Para executar:

         <?xml version="1.0" encoding="utf-8" ?>
         <SonarQubeAnalysisProperties
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-
         instance"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns="http://www.sonarsource.com/msbuild/
         integration/2015/1">

         <Property Name="sonar.host.url">http://                           Figure 31: Query Technical Debt
         localhost:9000</Property>




                                                           22
   17   18   19   20   21   22   23   24   25   26   27