Howto Verwendung von maven in einem heterogenen Umfeld mit verschiedenen Codierungen?
Habe ich einen svn-repositoy auf einem linux-server (Debian) und verwendet eine client auf einem windows-Rechner zu überprüfen, meine java-Quellen.
Nun ich habe eine Hudson-server auf einem anderen linux server (Ubuntu) in regelmäßigen Abständen tests auf meinen code. Aber die tests fehlschlagen, mit einem compiler-Fehler:
Error: unmappable character for encoding ASCII
Auf meinem windows-Rechner habe ich die default-encoding Cp1252.
Auf meinem svn-server kann ich eine lokale checkout meine Quellen und Sie gut Aussehen.
Auf meine Hudson-server der Kasse enthält unzulässige Zeichen.
Welche Parameter muss ich anpassen, so dass alle drei Systeme verwenden eine funktionierende Codierung?
BEARBEITEN 2009-10-15:
Änderte ich die Standard-Codierung von meinem Ubuntu-system zu latin1
. Jetzt kann ich öffnen Sie die checkedout-Dateien mit einem editor und Sie sehen gut aus (Dank @John-T-an superuser.com).
Aber Hudson noch beschwert unmappable character for encoding ASCII
und ich fand, dass dies verursacht wird durch maven. Ich fand eine Erklärung, aber der Lösungsvorschlag hat nicht funktioniert. Jetzt maven sagt mir, dass es verwendet latin1
beim kopieren einige Ressourcen, aber der compiler (nicht mit dieser Einstellung?) immer noch Beschwerden mit der gleichen Fehlermeldung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, das maven-compiler-plugin nicht verwenden die
project.build.sourceEncoding
Eigenschaft. So konfigurieren Sie die Datei-Codierung für Sie (ich würde UTF-8):<encoding>${project.build.sourceEncoding}</encoding>
Das erste, was zu erkennen ist, welcher Charakter ist das problem verursacht. Kann es sein, dass der kaputte char kann ersetzt werden durch einige Reine ASCII-Entität. SVN selbst ist die Codierung Agnostiker": es werden nur store byte-für-byte, was übergeben wird.
Wenn Hudson erfordert 7-bit-ASCII sind, dann ist dies alles, was Sie tun können. Ansonsten, finde heraus, was Hudson unterstützt und speichern Sie Ihre Dateien in diesem format statt. UTF-8 wäre probaby der Weg zu gehen.
iconv
konvertieren von Dateien von einem Zeichensatz zu einem anderen, man könnte ein Skript zum konvertieren der Dateien von CP1252 nach UTF8.Ich glaube nicht, dass es einen Weg gibt, ändern Sie die Codierung einer Datei mit SVN. Sie können die Kodierung für eine commit-Nachricht mit der
--encoding
Flagge, aber nicht den Inhalt der Dateien selbst. Text-Dateien werden in demselben format gespeichert, Sie erscheinen auf Ihrer lokalen Festplatte. Die einzige Umstellung ist eine übersetzung von Zeilenenden nach dem svn:eol-style Eigenschaft.