如何使用SonarQube修复“不在Git工作树中”?

问题描述

我启动了一个本地主机SonarQube服务器,然后我将maven插件的sonarscanner添加到我的pom.xml中,但是当我开始分析以下内容时:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/我收到此错误

[错误]无法在项目组上执行目标org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar(default-cli):不在Git工作树中:C:\ Users \ alexc \ OneDrive \ Desktop \ teamup-> [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目组上执行目标org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar(default-cli):不在Git工作树中:C :\ Users \ alexc \ OneDrive \ Desktop \ teamup 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:957) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:193) 在jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:567) 在org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)上 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) 引起原因:org.apache.maven.plugin.MojoExecutionException:不在Git工作树中:C:\ Users \ alexc \ OneDrive \ Desktop \ teamup 在org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:67)上 在org.sonarsource.scanner.maven.sonarQubeMojo.execute(SonarQubeMojo.java:104) 在org.apache.maven.plugin.DefaultBuildpluginManager.executeMojo(DefaultBuildpluginManager.java:137) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:957) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:193) 在jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:567) 在org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)上 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) 原因:org.sonar.api.utils.MessageException:不在Git工作树中:C:\ Users \ alexc \ OneDrive \ Desktop \ teamup

SonarQube 8.4.1 适用于Maven 3.7的SonarScanner JDK 1.11

这仅在此项目中发生。 这是一个Spring Boot项目。

解决方法

如果您设置属性sonar.projectBaseDir,我认为您可以解决此问题:

sonar.projectBaseDir="repository-path"

我在Sonarqube community question中找到了这个解决方案。

编辑

并且请确保您将git项目与.git文件夹一起使用。

,

看起来声纳扫描仪无法找到您的源代码克隆到的存储库。添加以下属性

sonar.projectBaseDir="<Path_to_project_where_project_is_cloned>"
sonar.sources=.
sonar.scm.provider=git