sonar.host.url not working with sonar-maven-plugin:2.7
将我的POM升级到sonar-maven-plugin:2.7后,该配置不再起作用。 我在settings.xml中的配置是这样的:
1 2 3 4 5 6 7 8 9 10 | <profile> <id>sonar</id> <properties> <sonar.jdbc.url>jdbc:postgresql://my.server:5432/sonar</sonar.jdbc.url> <sonar.jdbc.driverClassName>org.postgresql.Driver</sonar.jdbc.driverClassName> <sonar.jdbc.username>xxxxx</sonar.jdbc.username> <sonar.jdbc.password>yyyyy</sonar.jdbc.password> <sonar.host.url>http://my.server</sonar.host.url> </properties> </profile> |
当然,构建是从-Psonar开始的。 使用2.6版,一切都很好,使用2.7版,我得到了
1 2 3 4 5 | [INFO] --- sonar-maven-plugin:2.7:sonar (default-cli) @ myproject --- [INFO] User cache: C:\\Users\\me\\.sonar\\cache [ERROR] SonarQube server 'http://localhost:9000' can not be reached ... [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7:sonar (default-cli) on project myproject: Fail to download libraries from server: java.net.ConnectException: Connection refused: connect -> [Help 1] |
在两种情况下,都使用-X启动构建可为我提供正确的mojo配置,尤其是日志中的URL仍然正确
1 | [DEBUG] (f) sonarHostURL = http://my.server |
即使删除提到的缓存目录也无济于事。
除了管理2.6版插件外,我该怎么办?
我们正在调查这个问题。票证已创建:https://jira.sonarsource.com/browse/MSONAR-129
同时,您可以将SQ插件锁定为2.6版,也可以使用命令行传递所有属性。
解决方法:将-Dsonar.host.url = http://my.server:9000添加到mvn命令对我有用
比禁用插件更好,您可以将插件版本固定为2.6,考虑到sonar.host.url,它可以正常工作。
例如,在我的情况下,使用Maven:
1 2 3 4 5 6 7 8 9 10 | <pluginManagement> </plugins> <plugin> <groupId>org.codehaus.mojo</groupId> sonar-maven-plugin</artifactId> <version>2.6</version> <!-- sonar.host.url not working with version 2.7 --> </plugin> </plugins> </pluginManagement> |
我在CI服务器中使用完全合格的目标来运行声纳目标:
1 | mvn org.codehaus.mojo:sonar-maven-plugin:2.6:sonar |
由于我们在TeamCity中使用模板,因此这并不是什么大麻烦。我们仍然对该事件感到有些惊讶。
都
1 | mvn -Dsonar.host.url=http://localhost:9000 org.codehaus.mojo:sonar-maven-plugin:2.6:sonar |
和
1 | mvn -Dsonar.host.url=http://localhost:9000 org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar |
为我工作:
在重新解决所有问题之前,我没有为所有任务禁用声纳,而是重新配置了所有任务。我加了
到settings.xml中的声纳配置文件。