Maven执行SonarQube扫描报错:找不到'.host.url=https'前缀插件
问题分析
错误提示No plugin found for prefix '.host.url=https'说明Maven错误地将-Dsonar.host.url=https解析成了插件前缀命令,而非系统属性参数,核心原因是命令行参数的格式或分隔出现问题,导致Maven无法正确识别-D开头的系统属性。
解决方案
1. 修正命令行参数格式
- 移除
-Dsonar.projectName参数值的单引号(Windows环境下Maven对单引号支持不佳,易导致参数截断) - 确保所有
-D参数间使用正常半角空格,无多余制表符或全角空格
修正后的命令示例:
mvn clean verify sonar:sonar -Dsonar.projectKey=<sonar-provided-projectKey> -Dsonar.projectName=<Project Name> -Dsonar.host.url=https://private-sonarqube.com -Dsonar.token=<private sonarqube provided token> -s jfrog-settings.xml
若项目名称含空格,Windows环境建议用双引号包裹:
mvn clean verify sonar:sonar -Dsonar.projectKey=<sonar-provided-projectKey> -Dsonar.projectName="<Project Name>" -Dsonar.host.url=https://private-sonarqube.com -Dsonar.token=<private sonarqube provided token> -s jfrog-settings.xml
2. 确认settings.xml插件仓库配置
如果私有SonarQube需从JFrog拉取插件,确保jfrog-settings.xml中已正确配置插件仓库:
<pluginRepositories> <pluginRepository> <id>central-jfrog</id> <url>https://navify.jfrog.io/artifactory/plugins-release</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories>
3. 在pom.xml中绑定SonarQube插件(可选)
通过在pom.xml中配置插件和属性,避免命令行参数过多引发格式问题:
<build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.10.0.2594</version> <!-- 使用最新稳定版 --> </plugin> </plugins> </build> <properties> <sonar.projectKey><sonar-provided-projectKey></sonar.projectKey> <sonar.projectName><Project Name></sonar.projectName> <sonar.host.url>https://private-sonarqube.com</sonar.host.url> <sonar.token><private sonarqube provided token></sonar.token> </properties>
之后执行简化命令即可:
mvn clean verify sonar:sonar -s jfrog-settings.xml
内容的提问来源于stack exchange,提问作者Bijendra Bhargav
相关产品推荐
相关产品推荐

