Maven Golang build未扫描Go

Maven Golang build未扫描Go,maven,go,sonarqube-scan,Maven,Go,Sonarqube Scan,我们使用maven来构建Golang项目,因为我们是一家混合语言商店,maven是当前构建的标准 我们的第一个Go应用程序是一组服务于Vue项目的服务 jenkins文件调用mvn sonar:sonar,如下所示: stage('Sonar') { steps { echo 'Building Sonar' withSonarQubeEnv('Sonar') { // requires So

我们使用maven来构建Golang项目,因为我们是一家混合语言商店,maven是当前构建的标准

我们的第一个Go应用程序是一组服务于Vue项目的服务

jenkins文件调用mvn sonar:sonar,如下所示:

    stage('Sonar') {
        steps {
            echo 'Building Sonar'
            withSonarQubeEnv('Sonar') {
                // requires SonarQube Scanner for Maven 3.2+
                withMaven(
                        maven: 'Maven 3.5.3',
                        globalMavenSettingsConfig: 'GlobalSettingsRepo',
                        jdk: 'Java 8 Oracle',
                        options: [
                                artifactsPublisher(disabled: true),
                                jacocoPublisher(disabled: true)]) {
                    sh 'mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar -U'
                }
            }
        }
    }
我已经更新了Go文件夹中的父pom和pom,包括:

<dependencies>
    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>3.4.0.905</version>
    </dependency>
    <dependency>
        <groupId>org.sonarsource.go</groupId>
        <artifactId>sonar-go-plugin</artifactId>
        <version>1.0.0.1404</version>
    </dependency>
</dependencies>

org.codehaus.mojo
声纳maven插件
3.4.0.905
org.sonarsource.go
声纳围棋插件
1.0.0.1404
我还在环境变量中硬编码了Go文件夹的GOPATH。 但是,当我运行构建时,sonar scanner只扫描项目中的xml文件。如果我从命令行运行sonar scanner,它会分析Go代码和Vue代码


有什么建议吗?

显然,默认情况下,sonar scanner将分析您的整个项目结构,并要求显式排除以跳过显然不应分析的目录,如节点模块

Maven sonar插件希望您显式枚举源目录。我将以下几行放在子pom.xml文件中,它按照我预期的方式工作

Golang pom.xml:

<properties>
    <sonar.sources>src/go</sonar.sources>
</properties>

src/go
Vue pom.xml:

<properties>
    <sonar.sources>src/views,src/components,src/assets/js,src/assets/css</sonar.sources>
</properties>

src/views、src/components、src/assets/js、src/assets/css

值得一提的是,下面是成功扫描整个项目的命令行参数(不确定原因,但如果我不告诉它sonar.java.binaries目录,它将无法运行)。sonar-scanner.bat-D“sonar.projectKey=团队管理客户端”-D“sonar.sonar.sonar.sonar.host.url=“-D”sonar.login=supersecretkey”-D“sonar.java.binaries=C:\Users\me\Documents\projects\team client parent\team client go\target”