Eclipse project.properties Backslash-Pfade werden als schädlich betrachtet

9

Ich arbeite in einem Team, das Android-Software entwickelt. Einige Teammitglieder verwenden Windows, andere Macs, und ich kenne Linux. Jeder benutzt Eclipse.

Eclipse schreibt eine Datei namens project.properties ; Hier ist ein Beispiel. Der wichtige Teil ist die letzten drei Zeilen, die Android-Bibliothek Referenzpfade.

%Vor%

So sieht die Datei aus, wenn Eclipse auf Mac oder Linux schreibt. Wenn Eclipse unter Windows es schreibt, werden die Bibliotheksreferenzzeilen mit umgekehrten Schrägstrichen geschrieben.

Natürlich sind Backslashes unter Windows akzeptable Pfadtrennzeichen. Aber auf Mac und Linux funktionieren solche Pfade nicht. Die Sache ist, auf Windows funktionieren Vorwärtsschlitze tadellos gut. Unsere Richtlinie besteht also immer darin, die Datei mit Schrägstrichen zu versehen, damit sie für alle funktioniert.

Aber das ist ein Schmerz für unsere Windows-Benutzer, und es ist ein Schmerz für den Rest von uns, wenn die Windows-Benutzer einen Fehler machen, also suche ich nach einer technischen Lösung. Ich habe zwei Ideen:

  • Suchen Sie irgendwo in Eclipse unter Windows eine Einstellung, um beim Speichern von Pfaden in Dateien wie project.properties Schrägstriche zu verwenden. (Warum zum Teufel ist das nicht der Standard?!?)

  • Wir verwenden Mercurial, also: installieren Sie eine Art "Haken", die das Problem lösen.

    • Installieren Sie einen Commit-Hook auf den Windows-Computern, so dass die Datei in das Repository übertragen wird, wobei die Backslashes durch Schrägstriche ersetzt werden.
    • Installieren Sie einen Pull-Hook auf den Mac- und Linux-Computern; Wenn also die Datei mit umgekehrten Schrägstrichen übergeben wird, werden sie beim Schreiben der Dateien behoben.

Der Commit-Hook scheint sauberer zu sein. Wenn beide verfügbar sind, würde ich einen Commit-Hook über einen Pull-Hook machen.

Ich habe eine Mercurial-Erweiterung gefunden, die Tabs in Leerzeichen umwandelt, was zumindest so ist, wie ich es möchte. Es ist komplex genug, dass ich ein bisschen misstrauisch bin, es so zu verändern, wie ich es brauche.

Ссылка

Die andere Strategie besteht darin, einen Hook hinzuzufügen, der umgekehrte Schrägstriche in den Pfaden erkennt und das Commit einfach abbricht, wodurch der Windows-Benutzer gezwungen wird, die Datei vor der Übergabe manuell zu reparieren. Das wäre besser als nichts.

    
steveha 18.10.2013, 05:41
quelle

2 Antworten

1

Ich würde beide Versionen im Projekt behalten (als project.properties.windows und project.properties.linux ) und einen symbolischen Link erstellen, der auf die richtige Datei verweist auf dem Betriebssystem. Rufen Sie diese symbolische Verknüpfung project.properties auf und lassen Sie sie von der Versionskontrolle ignorieren.

Offensichtlich besteht der Nachteil dieses Setups darin, dass wenn Windows-Benutzer ihre project.properties -Datei aktualisieren (was auf project.properties.windows zeigt), muss die Linux-Version sein manuell aktualisiert, und umgekehrt, aber es klingt nicht wie eine große Sache tho, ich nehme an, dass Sie diese Datei nicht sehr oft aktualisieren.

- Um die Links zu erstellen -

Erstellen Sie eine Datei make_link.sh , um Linux-Umgebungen mit dem folgenden Befehl einzurichten:

%Vor%

Erstellen Sie eine Datei make_link.bat , um Windows-Umgebungen mit dem folgenden Befehl einzurichten:

%Vor%

Sie können diese Skripts auch übernehmen.

    
Paulo Amaral 23.02.2015 14:52
quelle
0

Wir sahen uns einer ähnlichen Situation gegenüber, da der Pfad der lokalen Bibliothek unterschiedlich war. Nach einer Weile fanden wir heraus, dass die zentralisierte Repository-Tools (Git für uns) die beste Methode sind: " Alle eclipse-abhängigen / spezifischen entfernen Einstellungsdateien aus dem Repository ". Und das funktioniert gut für uns. Auf diese Weise wirkt sich die Änderung der Eclipse-Einstellungsdatei nicht auf das zentrale Repository aus oder wird committed.

    
iankits 18.10.2013 05:47
quelle

Tags und Links