In unserem Shop verwalten wir ungefähr 20 Java EE-Webanwendungen. Die meisten dieser Anwendungen sind in ihrer Architektur ziemlich CRUD-ähnlich, wobei einige von ihnen ziemlich rechenintensive Berechnungsanwendungen sind.Java EE Jar-Dateifreigabe
Für die Bereitstellung dieser Anwendungen haben wir Hudson zur Überwachung unseres CVS-Repositorys eingerichtet. Wenn wir einchecken, werden die Projekte kompiliert und auf unserem Tomcat 6.0-Server (Solaris 10, Sparc Dual-Core-Prozessor mit 1,6 GHz, 2 GB RAM ... nicht die beängstigendste Maschine in jedem Bereich der Imagination ...) und, wenn für das Projekt Unit-Tests vorhanden sind, werden diese ausgeführt und das Projekt wird nur implementiert, wenn die Unit-Tests bestanden werden. Das funktioniert großartig.
Jetzt, im Laufe der Zeit, habe ich mich selbst bemerkt, dass viele der Projekte, die ich erstelle, die gleichen .jar-Dateien immer wieder verwenden (Hibernate, POI (Excel-Ausgabe), SQL Server JDBC-Treiber, JSF, ICEFaces, Geschäftslogik .jar-Dateien usw.). Unsere Praxis bestand darin, einen Ordner auf unserem Netzwerklaufwerk mit allen Standard-.jar-Dateien, die wir verwendet haben, zu speichern, und wenn ein neues Projekt gestartet wird, kopieren wir diesen Satz von .jar-Dateien in das neue Projekt und gehen von dort. ..und ich fühle mich so schmutzig jedes Mal, wenn dies passiert, hat es begonnen, mich nachts aufzuhalten. Ich habe von meinen Mitarbeitern erfahren, dass es "extrem schwierig" ist, ein .jar-Repository auf dem Tomcat-Server einzurichten, das ich für eine Sekunde nicht kaufe ... Ich schreibe es der reinen Faulheit zu und, wahrscheinlich, kein Wunsch, die beste Praxis zu lernen. Ich könnte mich irren, aber ich sage nur meine Gefühle zu diesem Thema. Dies scheint die Größe unserer WAR-Dateien aufzublähen, die ebenfalls auf dem Server bereitgestellt werden.
Aus meiner Sicht verfügt Tomcat über eine Reihe von .jar-Dateien, auf die alle Anwendungen zugreifen können. Daher würde ich meinen, dass wir alle diese doppelten .jar-Dateien in all unseren Projekten konsolidieren und verschieben könnten sie auf den Tomcat-Server. Dies würde bedeuten, dass nur eine .jar-Datei auf dem Server aktualisiert wird, wenn wir beispielsweise die .jar-Dateien von ICEFaces auf eine neue Version aktualisieren müssen.
Ein anderer Teil von mir sagt, dass ich, indem ich nur eine Kopie der .jar-Dateien auf dem Server einfüge, auch eine Kopie des lib-Verzeichnisses des Servers in meiner Entwicklungsumgebung behalten muss (dh diese .jar-Dateien in Finsternisabhängigkeit).
Mein Bauchgefühl sagt mir, dass ich diese duplizierten .jar-Dateien auf den Server verschieben will ... wird das funktionieren?