Плагин Maven Sonarqube: невозможно выполнить SonarQube: не удалось получить индекс bootstrap с сервера - PullRequest
0 голосов
/ 07 мая 2020

У меня головная боль при настройке плагина sonarqube maven для проекта.

Итак, у меня есть экземпляр sonarqube, скажем, на https://sonarqube.mycompany.software. Я тестирую много проектов на этом экземпляре, он работает уже несколько месяцев. У меня также есть другие проекты, которые используют плагин maven (но используют другое изображение docker для запуска)

Я запускаю новый проект и, конечно, хочу добавить к своему автоматическому конвейеру c, который проверяет код с помощью sonarqube.

Все работает отлично, когда я запускаю плагин maven на моем компьютере с OpenJdk-8:

$ mvn org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent clean test package
$ mvn sonar:sonar -Dsonar.projectKey=projectname -Dsonar.host.url=https://sonarqube.mycompany.software -Dsonar.login=youwishyouknew
[... Lots of output ...]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.891 s
[INFO] Finished at: 2020-05-07T18:03:00+02:00
[INFO] ------------------------------------------------------------------------

Затем я пытаюсь выполнить ту же самую команду с docker на сервере (где будет работать конвейер), используя изображение maven:3.6.3-jdk-8, я получаю эту ошибку:

$ docker run -v `pwd`/m2cache:/root/.m2 -v `pwd`/sonarcache:/root/.sonar/cache -v`pwd`:`pwd` -w`pwd` maven:3.6.3-jdk-8  mvn sonar:sonar -Dsonar.projectKey=projectname -Dsonar.host.url=https://sonarqube.mycompany.software -Dsonar.login=youwishyouknew

[INFO] 
[INFO] ---------------------------< software.mycompany:projectname >----------------------------
[INFO] Building projectname 2.3.0
[INFO] --------------------------------[ war ]---------------------------------
[INFO] 
[INFO] --- sonar-maven-plugin:3.7.0.1746:sonar (default-cli) @ projectname ---
[INFO] User cache: /root/.sonar/cache
[ERROR] SonarQube server [https://sonarqube.mycompany.software] can not be reached
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.286 s
[INFO] Finished at: 2020-05-07T16:06:22Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project projectname: Unable to execute SonarQube: Fail to get bootstrap index from server: Broken pipe (Write failed) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Когда я выполняю это, абсолютно ничего не происходит в Журналы Sonarqube (ни в одном журнале ничего не перемещается, а когда я запускаю его на своей машине, я нахожу все, что ожидаю найти.) * изображение, работает! Пробовал и с ping.

$ docker run -v `pwd`/m2cache:/root/.m2 -v `pwd`/sonarcache:/root/.sonar/cache -v`pwd`:`pwd` -w`pwd` maven:3.6.3-jdk-8  curl https://sonarqube.mycompany.software

<!doctype html><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png"><link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
[... And a lot more output ... ]

Он отвечает индексной страницей sonarqube, как я и ожидал.

Насколько я понимаю, в docker нет настройки прокси. maven image.

Это довольно неприятно.

Кто-нибудь знает, что здесь происходит и как это исправить?

[EDIT] Итак, я попробовал много всего, и одно сработало: использовало другое изображение docker. В частности, я пробовал все доступные образы maven jdk-8, доступные здесь: https://hub.docker.com/_/maven и один действительно работал, а все остальные не работали: maven:3.6.3-ibmjava-8.

Похоже, проблема связана с java -8, поскольку вместо этого все образы JDK 11 работают должным образом. К сожалению, проект находится в Java 8, и все ломается при обновлении JVM: -)

Я оставляю это здесь в качестве обходного пути, но все же я хотел бы знать, почему он не работает с другим docker изображения и как это исправить в будущем.

1 Ответ

0 голосов
/ 31 июля 2020

У меня тоже была эта проблема с анализом сонаркта maven и gradle, у меня эта проблема только с jdk8-u252 +. Официальный образ Maven 3.6.3 имеет jdk8-u262. Для меня с maven 3.5.2 все в порядке (jdk-u232).

По причине root это может быть javax. net .ssl новые функции, отправленные в u252: https://www.oracle.com/java/technologies/javase/8u251-relnotes.html

...