2009-07-20 7 views
3

Ich arbeite an einem Projekt, das eine Anzahl Java-Webanwendungen (und damit verbundene JAR-Dateien) mit Seam implementiert.Best Practice für die Aufnahme von Versionsinformationen in Java-Webanwendungen und -bibliotheken?

Was gilt als Best Practice hinsichtlich der Einbeziehung von Versionsinformationen in Bereitstellungen? Was ich verstehen muss, ist, wie Webanwendungen ihre Versionen enthalten und veröffentlichen sollen und wie das Gleiche für JAR-Dateien getan werden kann.

Dank

+0

Die beste Praxis * sollte OSGi-Manifeste sein, aber wir sind noch nicht ganz da ... – skaffman

Antwort

1

Sie haben ein paar Möglichkeiten, wenn es Nummer einschließlich der Version kommt:

  1. es dem MANIFEST.INF JAR hinzufügen.
  2. enthält die Version der JAR im Dateinamen.

Es ist ziemlich üblich, beides zu tun.

0

Als Maven Benutzer, ich folge der Maven conventions und lassen Sie Maven alle Versionierung verwalten, so dass ich am Ende mit Kriegen und Gläser mit Namen der Form:

foo-core-1.0.0.jar 
foo-ui-1.0.0.jar 
foo-app-1.1.0.war 
... 

Maven wird auch die Versionsinformationen setzen im Manifest und bette das POM in META_INF/maven/[groupId]/[artifactId] /pom.xml ein, so dass du feststellen kannst, wovon das ursprüngliche Artefakt abhängt. Dies kann für die manuelle Überprüfung eines Live-Servers nützlich sein.

0

Bibliotheken mit einer offiziellen Versionsnummer haben es oft in den Dateinamen eingebettet.

Für Build-Informationen sollten Sie sowieso einen automatisierten Build-Prozess haben, und es wird wahrscheinlich ameise verwendet. Es ist einfach zu:

  • Für JAR-Dateien können Sie die Implementierungsattribute in den Manifestdateien festlegen.
  • Sie können eine Eigenschaftsdatei im Klassenpfad erstellen, die die Informationen enthält, die Sie weitergeben möchten. Oft möchten Sie die Bauzeit und wer es gebaut hat.
  • Für Webanwendungen können Sie sie in die Beschreibung in web.xml einfügen.

können Sie diese Informationen auf verschiedene Weise angezeigt werden:

  • Die Beschreibung eines Web-App häufig in der Implementierungsumgebung gut sichtbar sind.
  • Eine Build-Seite mit den Komponenten zum Erstellen.
  • Protokollieren der Build-Informationen zum Startprotokoll beim Servlet-Protokoll.

Die wesentliche Frage hier ist, wer es sehen muss? Endbenutzer können in Protokollen nicht sehen ...

Unterschätzen Sie auch nicht den Wert eines genau geführten Deployment Logs! Sie sollten nicht auf die Verbraucher-Dateien schauen müssen ...