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