执行Maven Sonar扫描时遭遇‘http前缀无匹配插件’错误求助
解决Maven Sonar扫描时“NOT PLUGIN FOUND FOR PREFIX http”错误
问题场景
执行Sonar扫描命令:
mvn sonar:sonar -Dsonar.projectKey=project-key -Dsonar.projectName=project-name -Dsonar.host.url=http://my.sonarurl.com/ -Dsonar.login=mytoken
环境配置:
Java 11 Apache Maven 3.9.6
报错信息:
ERROR : NOT PLUGIN FOUND FOR PREFIX http in the current project and in the plugin groups [org.apache.maven.plugin, org.codehaus.mojo] available in the repositories.
更换完整插件坐标命令后仍出现相同错误:
"mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar"
解决步骤
1. 移除命令中的多余引号
第二个命令的外层双引号是无效的,会导致Maven解析命令时出现异常,正确命令格式应为:
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar -Dsonar.projectKey=project-key -Dsonar.projectName=project-name -Dsonar.host.url=http://my.sonarurl.com/ -Dsonar.login=mytoken
2. 检查-D参数格式
确保所有-D开头的参数键值对无空格,比如-Dsonar.host.url=http://my.sonarurl.com/必须连续书写,等号前后不能加空格——一旦出现空格,Maven会把http误识别为插件前缀,触发报错。
3. 配置Maven插件仓库
如果本地Maven仓库未缓存Sonar插件,需在settings.xml(路径:~/.m2/settings.xml或Maven安装目录下的conf/settings.xml)中添加插件仓库配置:
<profiles> <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <pluginRepositories> <pluginRepository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> </profile> </profiles>
4. 清理并更新Maven依赖
执行以下命令清理本地仓库缓存,强制重新拉取插件:
mvn clean install -U
5. 匹配插件与SonarQube版本兼容性
3.4.0.905版本的Sonar Maven插件较老旧,可能与SonarQube服务器版本不兼容。建议升级到最新兼容版本(如3.10.0.2594),命令示例:
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594:sonar -Dsonar.projectKey=project-key -Dsonar.projectName=project-name -Dsonar.host.url=http://my.sonarurl.com/ -Dsonar.login=mytoken
内容的提问来源于stack exchange,提问作者Christian Aguirre
相关产品推荐
相关产品推荐

