Metadaten und Arbeitsbereich
I wou ld teile niemals den Ordner .metadata
. In der Tat, es sei denn, Sie haben einen bestimmten Grund, ich würde nicht einmal den Arbeitsbereich Ordner teilen, sondern teilen Sie jedes Projekt separat mit Git. Auf diese Weise der .metadata
Ordner wird in den übergeordneten Ordner Ihrer git-Repository immer und Sie nicht darüber nachdenken, ob Sie brauchen, um es zu ignorieren trotzdem:
|-- workspace/
| \-- .metadata/
| |-- yourProjectOne/
| | \-- .git/
| | |-- .project
| | |-- src/
| | |-- ...
| |-- yourProjectTwo/
| | \-- .git/
| | |-- .project/
| | |-- src/
| | |-- ...
Projektspezifische
Sie sollten wahrscheinlich immer teilen Sie die .project
Datei und nie .settings/
Dateien. Die .classpath
kann von Ihrer Umgebung abhängen, aber ich würde nicht vorschlagen, sie zu teilen, weil es Konflikte verursachen kann (zum Beispiel wenn ein Benutzer openjdk verwendet und der andere sun-jdk verwendet).Das .settings
enthält Voreinstellungen und Einstellungen für Eclipse und ändert sich sehr, daher sollte es nicht geteilt werden. Wenn Sie das Projekt korrekt importieren, nachdem Sie es von Git geklont haben, werden Sie auch keine Probleme haben.
Die eclipse documentation besagt Folgendes über die .project
Datei:
Der Zweck dieser Datei ist das Projekt selbstbeschreibende, so zu machen, die ein Projekt, das gezippt oder zu einem Server freigegeben werden kann korrekt in einem anderen Arbeitsbereich neu erstellt.
und:
Wenn ein neues Projekt an einer Stelle geschaffen wird, die eine vorhandene Projektbeschreibungsdatei enthält, wird der Inhalt dieser Beschreibungsdatei als Projektbeschreibung geehrt. Eine Ausnahme ist, dass der Projektname in der Datei ignoriert wird, wenn er nicht mit dem Namen des zu erstellenden Projekts übereinstimmt. Wenn die Beschreibungsdatei auf der Festplatte ungültig ist, schlägt die Erstellung des Projekts fehl.
Ich schlage vor, Maven auch zu verwenden, da dies wird Ihnen eine Menge Probleme mit dem Abhängigkeitsmanagement speichern und .classpath
Maven
Der Hauptunterschied mit einem Maven-Projekt ist, dass Sie Importieren Sie das Projekt als Maven -> "Existing Maven Projects" und müssen Sie nur die Dateien pom.xml und .project
in git teilen. Eclipse erstellt dann automatisch die .classpath, .settings/
Dateien für Sie. Also müssen Sie sie offensichtlich nicht teilen. Wenn sich etwas in pom.xml ändert, führen Sie einfach Maven -> "Projektkonfiguration aktualisieren" und Maven -> "Abhängigkeiten aktualisieren" aus.
Ohne Maven
Sie sollten teilen sich die .project
Datei und nicht die .settings/
Ordner. Sie können sich überlegen, .classpath zu teilen, aber es kann zu Konflikten kommen, wie oben erklärt. Ich würde vorschlagen, es auch nicht zu teilen. Verwenden Sie die Methode unter dem Projekt zu importieren:
Nachdem Sie die git-Repository geklont haben Sie einfach importieren können -> „Vorhandenes Projekt von Workspace“ Sonnenfinsternis wird die .project
Datei ehrt, sondern erstellt die .classpath
und .settings/
Dateien. Nach dem Import müssen Sie den Klassenpfad manuell von Eclipse konfigurieren (und jedes Mal, wenn Ihr Team eine andere Bibliothek verwenden möchte).
Wenn Sie die .project-Datei nicht teilen, ist es nicht möglich, das Projekt mit Eclipse zu importieren. Sie müssen zuerst ein neues Projekt mit dem Projektassistenten erstellen und dann den Import "Allgemein-> Dateisystem" auswählen, damit alle Dateien in Ihren Arbeitsbereich kopiert werden. Dies ist wahrscheinlich nicht das, was Sie wollen, weil es bedeutet, dass Sie das Git-Repository nicht in den Arbeitsbereich klonen können, Sie müssen es irgendwo anders klonen und dann von dort importieren. Daher sollten Sie die .project-Datei immer teilen.
Bitte lassen Sie einen Kommentar, wenn Sie Vorschläge zu dieser Erklärung haben oder wenn Sie nicht damit einverstanden sind. Ich hoffe, das hilft dem einen oder anderen.
Ist es verständlich, dass Sie den gesamten Eclipse-Arbeitsbereich in einem einzigen Mercurial-Repository speichern? Haben Sie darüber nachgedacht, jedes Projekt in einem Repository zu speichern und sie dann als Unter-Repositories eines Umbrella-Repositorys zu gruppieren, damit Sie sie gemeinsam versionieren können (obwohl ich nicht weiß, ob Eclipse dafür Unterstützung bietet)? –
Es ist ein pluginbasiertes Produkt, und die einzelnen Projekte definieren jeweils ein Plugin. Alle werden zusammen oder das gesamte Produkt benötigt. Daher sind die einzelnen Projekte nur ein Teil des Ganzen, weshalb wir den gesamten Eclipse-Arbeitsbereich in einem einzigen Repository speichern möchten. –