Zunächst einmal komme ich (zurück) zu Java von C#, also Entschuldigungen, wenn meine Terminologie oder Philosophie nicht ganz in Einklang steht.Paket vs Projekt Trennung in Java
Hier ist der Hintergrund: Wir haben eine wachsende Sammlung von internen Support-Tools für das Web geschrieben. Sie verwenden HTML5/AJAX/andere Buzzwords für das Frontend und Java für das Backend. Diese Tools verwenden ein leichtgewichtiges Inhouse-Framework, so dass sie sich eine Verwaltungsschnittstelle für Sicherheit und andere Konfiguration teilen können. Jedes Tool wurde von einem anderen Autor geschrieben, und ich gehe davon aus, dass dieser Trend anhalten wird. Daher möchte ich es zukünftigen Autoren erleichtern, "standardisiert" auf den Bibliotheken von Drittanbietern zu bleiben, für die wir uns bereits entschieden haben wie DI, Unit-Tests, ORM usw.
sieht derzeit Unser Paket Namensgebung wie folgt aus:
- com.ourcompany.tools.framework
- com.ourcompany.tools.apps.app1name
- com.ourcompany.tools.apps.app2name
... und so weiter.
Also hier ist meine Frage: Sollte jede dieser Anwendungen (und das Framework) als separates Projekt für Maven Setup, Eclipse, etc behandelt werden?
Wir könnten hier im Laufe der Zeit viele Apps erscheinen lassen, also scheint es, als würde die Trennung die Abhängigkeiten sauberer halten und jemand leichter auf ein einzelnes Tool zugreifen können. Auf der anderen Seite ist (1) das "Teilen" von tieferen Teilen einer Paketstruktur über mehrere Projekte ein Code-Geruch und (2) das Zusammenhalten würde Werkzeugschreiber dazu bringen, Bibliotheken von Drittanbietern zu verwenden, die bereits für den anderen vorhanden sind Werkzeuge.
FWIW, mein erster Instinkt ist es, sie zu trennen.
Was sagen Sie, Java-Gurus?
Ich war mir des Eltern-Pom-Konzepts für die Abhängigkeitsverarbeitung nicht bewusst, bis Sie es erwähnten. Ich mag diese Idee, um die Standardisierung in den Apps zu verstärken. Die anderen Antworten sind auch toll, aber die Eltern Pom gibt diesem einen Vorteil. Vielen Dank! –