2015-12-07 67 views
2

我試圖用maven支持來設置SonarQube(v.4.5.6)。我相信我的配置是正確的,但我無法讓SonarQube分析無誤地運行。聲吶maven分析 - 未找到類

我的項目的依賴關係:

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-jetty</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-ldap</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <exclusions> 
      <exclusion> 
       <artifactId>commons-logging</artifactId> 
       <groupId>commons-logging</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-redis</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>${guava.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>net.logstash.logback</groupId> 
     <artifactId>logstash-logback-encoder</artifactId> 
     <version>${logstash-logback-encoder.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-module-junit4</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.powermock</groupId> 
     <artifactId>powermock-api-mockito</artifactId> 
     <version>${powermock.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-test</artifactId> 
     <version>${spring-security-test.version}</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

聲納Maven的插件:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>2.7.1</version> 
</plugin> 

SonarQube分析引發以下錯誤:

[INFO] [19:07:06.235] Source paths: pom.xml, src/main/java 
[INFO] [19:07:06.235] Test paths: src/test/java 
[INFO] [19:07:06.235] Binary dirs: target/classes 
[INFO] [19:07:08.046] Sensor JavaSquidSensor... 
[INFO] [19:07:08.154] Configured Java source version: none 
[INFO] [19:07:08.157] JavaClasspath initialization... 
[INFO] [19:07:08.173] JavaClasspath initialization done: 16 ms 
[INFO] [19:07:08.173] JavaTestClasspath initialization... 
[INFO] [19:07:08.202] JavaTestClasspath initialization done: 29 ms 
[INFO] [19:07:08.412] Java Main Files AST scan... 
[INFO] [19:07:08.414] 27 source files to be analyzed 
[ERROR] [19:07:08.849] Class not found: org.springframework.security.openid.OpenIDAuthenticationFilter 
[ERROR] [19:07:08.850] Class not found: org.springframework.security.openid.OpenIDConsumer 
[ERROR] [19:07:08.850] Class not found: org.openid4java.consumer.ConsumerManager 
[ERROR] [19:07:08.850] Class not found: org.springframework.security.openid.OpenIDAuthenticationToken 
[ERROR] [19:07:08.851] Class not found: org.openid4java.consumer.ConsumerException 
[ERROR] [19:07:08.851] Class not found: org.springframework.security.openid.AxFetchListFactory 
[ERROR] [19:07:08.872] Class not found: org.springframework.jdbc.datasource.init.DatabasePopulator 
[ERROR] [19:07:08.872] Class not found: org.springframework.jdbc.datasource.init.DataSourceInitializer 
[ERROR] [19:07:09.798] Class not found: javax.annotation.Nullable 
[INFO] [19:07:10.163] 27/27 source files have been analyzed 
[INFO] [19:07:10.163] Java Main Files AST scan done: 1751 ms 
[INFO] [19:07:10.165] Java bytecode scan... 
[INFO] [19:07:10.238] Java bytecode scan done: 73 ms 
[INFO] [19:07:10.239] Java Test Files AST scan... 
[INFO] [19:07:10.239] 17 source files to be analyzed 
[ERROR] [19:07:10.400] Class not found: org.springframework.security.openid.OpenIDAuthenticationFilter 
[ERROR] [19:07:10.400] Class not found: org.springframework.security.openid.OpenIDConsumer 
[ERROR] [19:07:10.401] Class not found: org.openid4java.consumer.ConsumerManager 
[ERROR] [19:07:10.401] Class not found: org.springframework.security.openid.OpenIDAuthenticationToken 
[ERROR] [19:07:10.401] Class not found: org.openid4java.consumer.ConsumerException 
[ERROR] [19:07:10.401] Class not found: org.springframework.security.openid.AxFetchListFactory 
[INFO] [19:07:11.114] Java Test Files AST scan done: 875 ms 
[INFO] [19:07:11.114] 17/17 source files have been analyzed 

提到的所有類都不能在項目中使用,對我而言,我更容易混淆可能的錯誤。

回答

7

您可以看到分析一直運行到最後,沒有說失敗。分析成功。

這條消息'沒找到類':是指?

這是由sonarqube java分析器在分析源文件的依賴關係時引發的。例如,如果您從春季擴展一個類,sonarqube java分析器將查找相應的.class文件。

如果我們有一個規則來計算層次級別的數量,它會查找這個.class文件等等的依賴關係。這意味着它會在你的項目中尋找一些可能不是直接的類。

此消息是無害的,它只是警告您,分析器無法找到一些.class文件,因此您可能會得到較不準確的結果,或者您可能想要修復提供給分析的類路徑。

+3

你是對的,分析運行得很好。但是有這些錯誤出現在日誌中有點煩人。我試圖找出Sonar能夠完美運行的正確類路徑配置。 – resilva87

+1

這是Java團隊意識到的事情,我們確實想要改善這一點,但目前還沒有定義計劃。 – benzonico