2017-08-22 3 views
2

Ich habe ein großes java-basiertes Projekt, das auf GitLab gehostet wird und über Jenkins mit Hilfe von ant erstellt wird. Die Jenkins-Maschine ist eine Windows-Box und hat einen SonarQube-Scanner installiert. Als Teil des Build-Prozesses scannt der jenkins-Rechner den Code und kommuniziert mit einem separaten SonarQube-Server, der eine Linux-Box ist.Kann SonarQube so konfiguriert werden, dass Windows-Zeilenendungen auf einem Linux-Rechner verwendet werden?

Derzeit hat unser Git Repo nur Windows-basierte Zeilenenden, da es von Svn konvertiert wurde. Bei dieser Konfiguration kann SonarQube neue Probleme bei der Code-Übermittlung erkennen, erkennt jedoch nicht die Zeilennummern der neuen Probleme. In GitLab fügt es der Zusammenführungsanforderung einen allgemeinen Kommentar hinzu, anstatt einen regulären Inline-Kommentar zu erstellen.

Ich habe die SonarQube-Analyse mit zusätzlicher Protokollierung ausgeführt und festgestellt, dass ein Zeichenfolgenvergleich zwischen der Zeile mit dem erkannten Problem und einem Zeilenarray, das den Rest der Datei darstellt, fehlgeschlagen ist.

Insbesondere sah es aus wie die Zeichenfolge, nach der es gesucht hat, hatte eine neue Zeile am Anfang der Zeichenfolge, während die Zeichenfolgen im Array eine neue Zeile am Ende der Zeichenfolge hatten.

Auf eine Ahnung habe ich alle Zeilenenden in einem Test-Zweig zu Unix-Stil Zeilenenden geschaltet, und die Windows-Box Auto-Crlf verwendet. Dies behebt das Problem, SonarQube konnte die Zeichenfolgen abgleichen und gab einen Inline-Kommentar für das Problem aus, das in der GitLab-Zusammenführungsanforderung gefunden wurde.

Da das Ändern jeder Zeile jeder Datei, um Unix-Zeilenenden zu erzwingen, ein wenig invasiver ist, als wir möchten, frage ich mich, ob es eine Konfigurationsoption gibt, die SonarQube erlauben würde, Zeilenenden im Windows-Stil zu erkennen. selbst wenn es auf einem Linux-Rechner läuft?

+0

Ich bin nicht sicher, ob hier ein Problem gibt. Das GitHub-Plugin verwendet Inline-Kommentare nur dann, wenn die vom Problem betroffenen Zeilen Teil des diff sind. Wenn Sie die Zeilenenden wechseln, wird die gesamte Datei Teil des diff, was erklären könnte, dass das betreffende Problem gemeldet wird. Wenn Sie bestätigen, dass die betroffenen Zeilen Teil des diff sind, teilen Sie bitte die von Ihnen erwähnte zusätzliche Protokollausgabe mit einigen Zeichenfolgenvergleichen. Auf jeden Fall rate ich hier hauptsächlich, weil das GitLab Plugin von der Community verwaltet wird, nicht von SonarSource. – janos

Antwort

Verwandte Themen