2016-12-27 72 views
0

这里的简单问题。我想添加声纳在每个Maven版本上执行。我想:如何使用声纳Maven插件

<plugin> 
    <groupId>org.sonarsource.scanner.maven</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>3.1.1</version> 
</plugin> 

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

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

因为)我无法弄清楚什么插件做的和/或b)哪一个是目前的一个。

如果我只将以上内容添加到<build> - ><plugins>它不会被执行(因此插件没有默认执行)。所以我当然加了<execution>指令,而声纳被执行后,但有以下错误信息:

<executions> 
    <execution> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>sonar</goal> 
     </goals> 
    </execution> 
</executions> 

未能执行目标org.sonarsource.scanner.maven:声纳Maven的插件: 3.1.1:项目org.acme.project.build上的声纳(默认):无法执行Findbugs:此项目包含未编译的Java源文件。

它似乎没有我使用哪种阶段(我试过validatecompiletestprepare-packagepackage即使不是全部的意义)。我确信在项目的任何地方都没有源代码生成。而静态类得到编译就好了。

我认为问题可能是插件被执行的每个模块,包括父pom项目。这很奇怪,因为sonar:sonar跳过了这个项目。

但该项目结构简单,我无法找到任何不寻常的:

<groupId>group</groupId> 
<artifactId>org.acme.project.build</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<modules> 
    <module>org.acme.project</module> 
</modules> 

<profiles> 
    <profile> 
     <id>sonar</id> 
     <properties> 
      <sonar.host.url>http://sonar.acme.org/</sonar.host.url> 
     </properties> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.sonarsource.scanner.maven</groupId> 
        <artifactId>sonar-maven-plugin</artifactId> 
        <version>3.1.1</version> 
        <executions> 
         <execution> 
          <phase>compile</phase> 
          <goals> 
           <goal>sonar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

org.acme.project除了有其自己的工件ID和父没有该项目。该命令行是:mvn clean deploy -Dsonar.login=Wile.Coyote -Dsonar.password=*********** -Psonar

日志显示声纳始终执行之前安装阶段,这当然是远远早。

那么,如何使用Sonar的Maven插件来分析我的代码?

+0

你得到的错误是用哪个插件? – nullpointer

+0

@nullpointer使用'sonar-maven-plugin'。 –

+0

我的意思是使用groupId的sonar-maven-plugin?你们一起使用它们三个吗? – nullpointer

回答

0

一)我无法弄清楚什么插件做

的插件是用来收集来自代码覆盖率报告和库代码扫描的细节越来越来分析可能的错误,重复等您可以搜索样品声纳报告找到什么都,以及如何获得这些细节与使用两种方法,如settings.xmlmaven plugin行家在SonarQube Scanner for Maven详述, SonarQube - analyzing with Maven

B)哪一个是当前的一个。

Maven的中央认为,从org.codehaus.mojo当前插件作为

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

已经移动到

<plugin> 
    <groupId>org.sonarsource.scanner.maven</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>3.2</version> 
</plugin> 

所以,你最好能够利用的groupId的一个 - org.sonarsource.scanner.maven也建议由SonarQube Docs

此外,来自org.codehaus.sonar版本5.1的神器似乎已过时,并未得到维护。

+0

幸运的猜测,但该插件是我做了我的大部分测试。仍然有上面的错误信息。我现在认为这是父母的问题。或者,也许问题在于无论如何迫使我手动添加''标签,因为如果没有标签,它就无法工作。 –

相关问题