Наилучшая практика для включения информации о версии в веб-приложения и библиотеки Java? - PullRequest
3 голосов
/ 20 июля 2009

Я работаю над проектом, который реализует несколько веб-приложений Java (и связанных файлов JAR) с использованием Seam.

Что считается наилучшей практикой в ​​отношении включения информации о версии в развертывания? Мне нужно понять, как веб-приложения должны содержать и публиковать свои версии и как это можно сделать для файлов JAR.

Спасибо

Ответы [ 4 ]

4 голосов
/ 20 июля 2009
1 голос
/ 20 июля 2009

У вас есть несколько вариантов, включая номер версии:

  1. добавить его в файл JAR MANIFEST.INF .
  2. включить версию JAR в имя файла.

Это довольно распространенный способ сделать оба.

0 голосов
/ 20 июля 2009

Библиотеки с официальным номером версии часто имеют его в имени файла.

Для информации о сборке у вас все равно должен быть автоматизированный процесс сборки, и он, скорее всего, использует ant. Это легко:

  • Для файлов JAR вы можете установить атрибуты реализации в файлах манифеста.
  • Вы можете создать файл свойств, расположенный в пути к классам, который содержит информацию, которую вы хотите распространять. Часто вам нужно время сборки и кто его построил.
  • Для веб-приложений вы можете указать это в описании, расположенном в web.xml.

Вы можете отобразить эту информацию несколькими способами:

  • Описание веб-приложения часто легко увидеть в среде развертывания.
  • Страница сборки, показывающая компоненты, использованные для сборки.
  • Запись информации о сборке в журнал сервлета во время запуска.

Основной вопрос здесь - кому это нужно видеть? Конечные пользователи не могут видеть в логах ...

Также не стоит недооценивать ценность точно сохраненного журнала развертывания! Вам не нужно идти и смотреть на файлы потребителей ...

0 голосов
/ 20 июля 2009

Как пользователь Maven , я следую соглашениям Maven и позволяю Maven управлять всеми версиями, поэтому я получаю войны и фляги с именами вида:

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

Maven также поместит информацию о версии в манифест и вставит POM в META_INF / maven / [groupId] / [artifactId] /pom.xml, чтобы вы могли определить, от чего зависел исходный артефакт. Это может быть удобно для ручной проверки работоспособного сервера.

...