Ich arbeite gerade an einem Projekt, das viele verschiedene Eclipse-Projekte enthält, die sich gegenseitig auf ein großes Projekt beziehen. Gibt es einen Punkt, an dem sich ein Entwickler fragen sollte, ob er die Art und Weise, wie sein Entwicklungsprojekt strukturiert ist, überdenken sollte?
HINWEIS: Mein Projekt enthält derzeit mehr als 25 verschiedene Eclipse-Projekte.
Meine allgemeine Faustregel ist, dass ich für jede wiederverwendbare Komponente ein neues Projekt erstellen würde. Also zum Beispiel, wenn ich eine isolierte Funktionalität habe, die zB als Jar gepackt werden kann, würde ich ein neues Projekt erstellen, so dass ich die Komponente selbst erstellen, verpacken und verteilen kann.
Auch wenn es bestimmte Projekte gibt, an denen Sie keine häufigen Änderungen vornehmen müssen, können Sie sie nur bei Bedarf erstellen und sie in der Eclipse "geschlossen" halten, um bei der Indizierung usw. Zeit zu sparen Bestimmte Komponenten sind nicht wiederverwendbar, solange sie vom Rest der Codebasis in Bezug auf Logik / Bedenken getrennt sind, können Sie gut davon profitieren, indem Sie sie einfach trennen. Manchmal scheint scheinbar spezifischer Code in einem anderen Projekt oder in einer zukünftigen Version desselben Projekts wiederverwendbar zu sein.
Beim Kompilieren würde ein Projekt normalerweise zu einem Jar führen. Wenn Ihre Anwendung also aus potenziell wiederverwendbaren Komponenten besteht, ist es in Ordnung, für jedes ein Projekt zu verwenden.
Ich bin ein großer Fan von vielen Projekten, ich fühle, dass dies große Dinge "zusammenbricht", was ich nicht mit Paketen machen kann, und hilft mir, mich zu orientieren und zu navigieren.
Wenn Sie Eclipse-Plug-Ins entwickeln, ist natürlich sowieso alles ein Projekt.
Das einzige, worauf ich achten muss, ist die Quellcodeverwaltung und die Fähigkeit, Dateien zwischen Projekten zu verschieben. Die Finsternis hatte mir Probleme gemacht, oder vielleicht war es mein SVN-Server.
Wenn Ihr Projekt das viele Unterprojekte oder Module hat, die benötigt werden, um Ihr endgültiges Artefakt zu erstellen, dann ist es an der Zeit, etwas wie Maven zu betrachten und ein Multi-Modul-Projekt einzurichten. Es wird Ihnen erlauben, an jedem Modul unabhängig und ohne Probleme zu arbeiten und eine einfache Einrichtung in Ihrer IDE (und anderen IDEs) durch das mvn eclipse:eclipse
-Ziel zu ermöglichen. Beim Erstellen Ihres gesamten Top-Level-Projekts kann maven außerdem aus der Liste der Abhängigkeiten, die Sie beschrieben haben, welche Module in welcher Reihenfolge erstellt werden müssen, abgeleitet werden.
Hier ist ein kurzer Link über Google und al Link zum Buch Maven: The Definitive Guide , das die Dinge in Kapitel 6 (einmal Sie haben die Grundlagen).
Dadurch wird Ihr Projekt auch nicht explizit an Eclipse gebunden. In der Lage zu sein, unabhängig von einer Idee zu bauen, bedeutet, dass jeder Joe Schmoe mitkommen und leicht mit Ihrer Code-Basis arbeiten kann, indem er die Werkzeuge benutzt, die er benötigt.
Erstellen Sie Gläser für die Projekte, in denen Sie nicht oft arbeiten. Das sollte die Unordnung stark reduzieren. Wenn Sie häufig an allen Projekten arbeiten, können Sie Ihrem Build Ziele hinzufügen, die die entsprechenden Projekte für Sie zusammenfassen, wodurch alles in einer Datei zusammengefasst wird, die Sie dann in den Klassenpfad einfügen können.
Eine zusätzliche Methode besteht darin, viele verschiedene Arbeitsbereiche zu erstellen. Der Vorteil separater Arbeitsbereiche besteht darin, dass Sie einen Teil des Overclocking- / Performance-Aufwands für viele Projekte entfernen können. Sie können Ziele verwenden, um alle Ihre Projekte zu erfassen und sie in einem Repository abzulegen, sodass Sie sie in jedem Arbeitsbereich referenzieren können.
Yeesh. Ein Projekt für jedes Projekt. Wenn Sie wiederverwendbare Projekte verwenden, machen Sie sie zu einer Bibliothek, um Himmels willen. Brechen Sie die nicht wiederverwendbaren Projekte in Pakete, für die sie da sind.
Das ist eine schwierige Frage und die Antworten reichen von einem Eclipse-Projekt bis hin zu einem Eclipse-Projekt für jede einzelne Klasse.
Mein Fazit:
Übrigens ist das Projekt, an dem ich arbeite, in 24 Eclipse-Projekte unterteilt.